Знаете ли вы свои данные? (Шэнь Хуа): Простой анализ признаков

искусственный интеллект сбор данных pandas WeChat

0x00 Предисловие

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

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

Тема и данные — конкурс начального уровня «Титаник: машинное обучение после катастрофы» в Kaggle. Предыстория темы - предсказать, переживет ли человек бедствие.

Обзор функций 0x01

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

имя поля значение описывать
survival Survival 0 = No, 1 = Yes
pclass Ticket class 1 = 1st, 2 = 2nd, 3 = 3rd
sex Sex
Age Age in years
sibsp # of siblings / spouses aboard the Titanic
parch # of parents / children aboard the Titanic
ticket Ticket number
fare Passenger fare
cabin Cabin number
embarked Port of Embarkation C = Cherbourg, Q = Queenstown, S = Southampton

Затем взгляните на то, как примерно выглядят данные:

train_df = pd.read_csv('../input/train.csv')
train_df.head()

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

train_df.describe(include='all')

0x02 Функция Описание

Дальнейшие действия будут включать:

  1. Является ли функция значимой: например, идентификатор пользователя, уникальный идентификатор, принадлежащий пользователю, не имеет значения для анализа.
  2. Узнайте тип данных функции: скажем, является ли функция категориальной функцией?
  3. Ситуация с пропущенными значениями: сколько пропущенных значений, и более 80% пропущенных значений?

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

0x03 Влияние функции

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

Интуитивно мы предполагаем, что эти характеристики будут иметь относительно большое влияние на то, будет ли человек в конечном итоге спасен:

  1. Pclass (позиция): люди из первого класса с большей вероятностью будут иметь приоритет?
  2. Секс: сначала дамы, так проще первым попасть на борт?
  3. Возраст: сначала пожилые и дети?

Исходя из этих предположений, мы анализируем эти характеристики отдельно:

Давайте посмотрим на спасение различных P-классов с помощью следующего утверждения.

train_df[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean().sort_values(by='Survived', ascending=False)
Id Pclass Survived
0 1 0.629630
1 2 0.472826
2 3 0.242363

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

train_df[["Sex", "Survived"]].groupby(['Sex'], as_index=False).mean().sort_values(by='Survived', ascending=False)
Id Sex Survived
0 female 0.742038
1 male 0.188908

При анализе возраста нам нужно сделать простую сегментацию возраста, Мы напрямую используем функцию Pandas, чтобы разделить возраст на 7 сегментов. (Такая оценка не очень разумна и хороша только как объяснение.)

train_df['AgeBand'] = pd.cut(train_df['Age'], 7)
train_df[['AgeBand', 'Survived']].groupby(['AgeBand'], as_index=False).mean().sort_values(by='AgeBand', ascending=True)
Id AgeBand Survived
0 (0.34, 11.789] 0.573529
1 (11.789, 23.157] 0.359551
2 (23.157, 34.526] 0.399142
3 (34.526, 45.894] 0.417910
4 (45.894, 57.263] 0.411765
5 (57.263, 68.631] 0.346154
6 (68.631, 80.0] 0.142857

Эти характеристики имеют значение?

Благодаря приведенному выше анализу мы можем увидеть некоторые явления:

  1. Выживаемость пассажиров с разным положением сильно различается, интуитивно понятно, чем лучше положение, тем больше выживает.
  2. У женщин выживаемость составляет 74%, а у мужчин всего около 18 лет.
  3. Выживаемость детей выше, выживаемость пожилых людей ниже

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

Конечно нет.Существует также влияние сочетания характеристик,таких как влияние возраста.В настоящее время выживаемость в возрасте от 20 до 50 лет аналогична,но значит ли это,что самец на самом деле очень низкий,и большинство выживших это женщины, а то женщины подтягивают общую выживаемость?

0x04 Комбинация функций

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

train_df['AgeBand'] = pd.cut(train_df['Age'], 7)
train_df[['AgeBand','Sex', 'Survived']].groupby(['AgeBand','Sex'], as_index=False).mean().sort_values(by='AgeBand', ascending=True)
Id AgeBand Sex Survived
0 (0.34, 11.789] female 0.593750
1 (0.34, 11.789] male 0.555556
2 (11.789, 23.157] female 0.753623
3 (11.789, 23.157] male 0.110092
4 (23.157, 34.526] female 0.772152
5 (23.157, 34.526] male 0.207792
6 (34.526, 45.894] female 0.764706
7 (34.526, 45.894] male 0.204819
8 (45.894, 57.263] female 0.826087
9 (45.894, 57.263] male 0.200000
10 (57.263, 68.631] female 1.000000
11 (57.263, 68.631] male 0.105263
12 (68.631, 80.0] female NaN
13 (68.631, 80.0] male 0.142857

Из таблицы хорошо видно, что выживаемость женщин той же возрастной группы значительно выше, чем у мужчин.

0xFF Сводка

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

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

木东居士 wechatДобро пожаловать в мой публичный аккаунт WeChat! Придерживайтесь обмена оригинальными технологиями, ваша поддержка побудит меня продолжать творить! награда木东居士 微信支付

WeChat Pay

  • Автор этой статьи:Мастер Мудонг
  • Ссылка на эту статью: Город Муданьцзян.info/2018/04/15/…
  • Уведомление об авторских правах:Все статьи в этом блоге, если не указано иное, используютCC BY-NC-SA 3.0соглашение. Пожалуйста, укажите источник!