Придаем EDA гламурный облик.

На этой неделе наши новые сотрудники PISB начали свой путь в области машинного обучения со своей первой задачи: исследовательского анализа данных, и мы были поражены тем, как много они узнали всего за 3 дня. Наставниками студентов были Аболи Марате и Аюш Дас. Из всех участников Кирти Палве и Нил Дешпанде выделялись своей прекрасной работой, которая поразила наших судей. Здесь мы хотели бы представить их работу в виде краткого руководства, охватывающего основы EDA. Для задания мы использовали набор данных об успеваемости учащихся, доступный на Kaggle.

Мы начнем с импорта необходимых библиотек, и в этом руководстве мы будем использовать некоторые из самых популярных библиотек Python: Numpy, Pandas, Matplotlib, Seaborn и Scipy.

Теперь мы загружаем наш набор данных в фреймворк Pandas. В этой работе мы могли бы просто загрузить его с помощью pandas read_csv (), но если ваш лист csv или excel выдает ошибку UnicodeDecode во время чтения, вы можете установить encoding = «ISO-8859–1» или «UTF-8», как дополнительный аргумент.

Давайте посмотрим на основные характеристики, такие как особенности, форму и статистические показатели центральной тенденции. Для начала мы будем наблюдать данные, выбирая первые 5 строк.

Затем мы проверим форму, то есть количество строк и столбцов в наборе данных.

Здесь мы можем проверить статистические показатели, такие как среднее значение, количество, максимальная центральная тенденция, дисперсия и форма распределения набора данных, за исключением значений наночастиц.

Теперь мы посмотрим на распределение графически, построив индивидуальные графики характеристик.

Проверка на отсутствие данных действительно важна, так что давайте сделаем это в первую очередь. К счастью, у нас есть идеальный набор данных без каких-либо пропущенных значений, но если они у вас есть, вы можете использовать dropna (), fillna () или более интересный подход, такой как вменение KNN, в зависимости от типа имеющегося у вас набора данных.

Чтобы узнать количество значений или, в данном случае, учащихся, относящихся к разным категориям, мы можем использовать следующую функцию для анализа данных.

Давайте сделаем крутой вложенный график, описывающий расу и пол в наборе данных.

Теперь мы немного обработаем данные, чтобы извлечь значимую информацию, которую можно легко интерпретировать. Мы заменим значения, принадлежащие категориям меньшинств, на основные метки и найдем такие меры, как средние и диапазоны.

Давайте визуализируем эти недавно отсортированные диапазоны на гистограмме с накоплением.

На диаграмме показано гендерное представление результатов тестирования учащимися.

Мы также преобразовали некоторые категориальные метки в числовые значения и создали тепловую карту корреляции, чтобы найти скрытые взаимосвязи в данных.

Мы видим, что ученики, которые хорошо читают, также хорошо умеют писать.

Другой метод просмотра значений - это диаграмма рассеяния, которая показывает значения различных функций по разным осям.

Чтобы узнать, как подготовка к тесту влияет на результаты теста, мы нарисовали график плотности графика для оценок по математике в наборе данных.

Похоже, что посещение подготовительного курса не оказывает значительного влияния на успеваемость учащихся по математике.

Чтобы визуализировать 3 оценки одновременно, мы будем использовать диаграммы разброса.

Результаты по письму и чтению больше связаны друг с другом, чем с оценкой по математике.

Чтобы детально проверить выбросы и распределения, мы можем использовать ящичные диаграммы.

Вы можете наблюдать выбросы как особые точки, которые следуют за усами коробчатых диаграмм.

Чтобы понять взаимосвязь между функциями, мы можем использовать парные графики, чтобы визуализировать их в деталях.

Если вы посмотрите на набор данных, вы можете увидеть баллы студентов, отмеченные по 3 предметам. Таким образом, мы можем использовать эту функцию, преобразовывать оценки в оценки и визуализировать результаты.

Для творческого представления функций мы также можем использовать Joint Plots.

Наконец, чтобы завершить анализ, мы сделали небольшую гифку, в которой динамически показаны оценки и оценки всех учащихся по математике, которые учителя могут использовать для просмотра результатов.

Общие выводы

  • Студенты, получавшие «стандартный» обед, показали лучшие результаты, чем студенты, получавшие «бесплатный» обед. (вероятно, из-за лучших пищевых привычек и сбалансированного питания)
  • Студентки показали лучшие результаты, чем студенты мужского пола.
  • Учащиеся, набравшие высокие баллы, были детьми родителей с высшим образованием.
  • Высокие оценки по чтению обычно означают высокие оценки по письму, и наоборот.

использованная литература

Спасибо, что прочитали эту статью. Полный код доступен на Github, с еще большим количеством визуализаций. Мы думали, что это был интересный EDA, и надеемся, что вам понравилась наша работа!