Проектное задание

In [1]:
import numpy as np
import pandas as pd
import scipy

import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

Правила игры:

Вам разрешается пользоваться любыми источниками информации (Python Docs, StackOverflow, etc.), кроме ваших коллег.

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

Задание не должно совпадать с анализом, уже выложенным в Интернет.

Дедлайн:

Датасет надо выбрать на странице до 23:59:59 10 мая 2021

Проектное домашнее задание нужно отправить на почту python.msu@mail.ru до 23:59:59 22 мая 2021.

Тема письма должна быть "Фамилия Имя - Проект".

К письму нужно прикрепить эту Jupyter-тетрадь с названием "Family_Name_project.ipynb" и ваш файл с датасетом с тем же названием, как вы используете в коде. Файлы должны лежать в zip-архиве в папке "Family_Name". Пример:

Ivanov_Ivan.zip
|-- Ivanov_Ivan
    |-- Ivanov_Ivan_project.ipynb
    |-- titanic_train.csv
    |-- titanic_test.csv        # не нужен, если не используется в коде

Проектное задание (EDA). (до 30 баллов, минимум 10)

Творческое задание на навыки работы с библиотекой Pandas.

Что необходимо сделать:

  1. Зайдите на сайт https://www.kaggle.com/ или другой ресурс и скачайте там какой-либо понравившийся вам датасет. Вы также можете взять собственные данные, если дадите их подробное описание. Отметьте выбранный вами датасет в таблице. Не выбирайте датасет, который уже кем-то выбран! Помните, что часто данные делятся на train и test, вам обычно нужна только часть train. Данные должны удовлетворять следующим условиям:
    • В датасете присутствует как минимум 1000 записей,
    • Для записей присутствует как минимум один категориальный признак (желательно два или три),
    • Как минимум три числовых признака,
    • Данные имеют понятный смысл (это не должны быть данные с БАК со странными буквенными кодами, понятные только специалистам).
  2. Выбрав датасет, загрузите его и проведите EDA (exploratory data analysis). За проведение красивого анализа данных будут начислены дополнительные баллы.
  3. Если вы не знаете, что делать, вот определенный минимум информации, которую нужно будет извлечь:
    1. Посмотрите на параметры распределений числовых признаков - их средние, максимумы, минимумы, медианы, дисперсии и т.д. Постройте графики (подумайте, какие) наиболее интересных распределений. [до 3 баллов]
    2. Посмотрите на наиболее крупные/мелкие/значительные/редкие/и т.п. записи по какому-либо из критериев (не увлекайтесь). [до 2 баллов]
    3. Посмотрите на параметры этих распределений в группировке по категориальным переменным. Постройте графики этих распределений (какие?). [до 2 баллов]
    4. Составьте наиболее осмысленную сводную таблицу по нескольким признакам. [до 2 баллов]
    5. Покажите совместное распределение нескольких признаков (таблицей/графиками/и тем, и другим). [до 2 баллов]
    6. Примените какой-либо разумный фильтр по одному из признаков в виде функции и проведите анализ отфильтрованных данных. [до 2 баллов]
    7. Сформулируйте несколько разумных статистических гипотез и приведите свидетельства в их пользу/покажите недостаточность свидетельств в каждом случае. -- [до 10 баллов] (зависит от умения применять мат. аппарат и количества грамотно использованных тестов)
    8. ** Задание для интересующихся: Для многих датасетов часто присутствует часть test. В этой части не указан один или несколько признаков (обычно категориальных или числовых). Попробуйте предсказать значения этого пропущенного признака по другой части датасета (train) с помощью математической модели. Помните, что выполнение этого задания потребует больших временных затрат! Библиотека моделей для обучения называется scikit-learn. [много баллов :^)]

Естественно, некоторые "обязательные" пункты из этого минимума, возможно, не будут иметь смысла для ваших данных, а другие могут, наоборот, быть очень познавательными. Сделайте все, что дает информацию о датасете, и если у вас получится хороший и внятный анализ, то задание будет зачтено. Дополнительные баллы будут ставиться за осмысленный анализ и демонстрацию хорошего владения модулями, (в т.ч. бонус за сторонние модули).

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

EDA без графиков не принимаются.

Если вы решили выполнять пункт с ML, можете обращаться к преподавателям за советом по поводу выбора модели для ваших данных.

In [2]:
# your code goes here