Особливості роботи з категоріальними даними

Exploratory Data Analysis у Python

George Boorman

Curriculum Manager, DataCamp

Навіщо виконувати EDA?

  • Виявлення патернів і зв'язків

 

 

  • Формулювання запитань або гіпотез

 

 

  • Підготовка даних для машинного навчання

Знак питання червоним неоном

1 Image credit: https://unsplash.com/@simonesecci
Exploratory Data Analysis у Python

Репрезентативні дані

  • Вибірка має представляти генеральну сукупність

Наприклад:

  • Освіта проти доходу в США
    • Не можна брати дані з Франції

Прапор США

Прапор Франції

1 Image credits: https://unsplash.com/@cristina_glebova; https://unsplash.com/@nimbus_vulpis
Exploratory Data Analysis у Python

Категоріальні класи

  • Класи = мітки

 

  • Опитування ставлення до шлюбу
    • Сімейний стан
      • Неодружені/незаміжні
      • Одружені/заміжні
      • Розлучені
Exploratory Data Analysis у Python

Дисбаланс класів

Стовпчикова діаграма з кількостями сімейних статусів у вибірці — 700 розлучених, 250 неодружених/незаміжніх і 50 одружених/заміжніх

Exploratory Data Analysis у Python

Частота класів

print(planes["Destination"].value_counts())
Cochin       4391
Banglore     2773
Delhi        1219
New Delhi     888
Hyderabad     673
Kolkata       369
Name: Destination, dtype: int64
Exploratory Data Analysis у Python

Відносна частота класів

  • 40% внутрішніх рейсів Індії мають пункт призначення Delhi
planes["Destination"].value_counts(normalize=True)
Cochin       0.425773
Banglore     0.268884
Delhi        0.118200
New Delhi    0.086105
Hyderabad    0.065257
Kolkata      0.035780
Name: Destination, dtype: float64
  • Чи репрезентативна наша вибірка для сукупності (внутрішніх рейсів Індії)?
Exploratory Data Analysis у Python

Крос-табуляція

Виклик pd-dot-crosstab

pd.crosstab(
Exploratory Data Analysis у Python

Вибір індекса

Виберіть стовпець як індекс

pd.crosstab(planes["Source"],
Exploratory Data Analysis у Python

Вибір стовпців

Виберіть стовпець

pd.crosstab(planes["Source"], planes["Destination"])
Exploratory Data Analysis у Python

Крос-табуляція

Destination  Banglore  Cochin  Delhi  Hyderabad  Kolkata  New Delhi
Source                                                             
Banglore            0       0   1199          0        0        868
Chennai             0       0      0          0      364          0
Delhi               0    4318      0          0        0          0
Kolkata          2720       0      0          0        0          0
Mumbai              0       0      0        662        0          0
Exploratory Data Analysis у Python

Розширення крос-табуляції

Source Destination Median Price (IDR)
Banglore Delhi 4232.21
Banglore New Delhi 12114.56
Chennai Kolkata 3859.76
Delhi Cochin 9987.63
Kolkata Banglore 9654.21
Mumbai Hyderabad 3431.97
Exploratory Data Analysis у Python

Агреговані значення з pd.crosstab()

pd.crosstab(planes["Source"], planes["Destination"],

values=planes["Price"], aggfunc="median")
Destination  Banglore   Cochin   Delhi  Hyderabad  Kolkata  New Delhi
Source                                                               
Banglore          NaN      NaN  4823.0        NaN      NaN    10976.5
Chennai           NaN      NaN     NaN        NaN   3850.0        NaN
Delhi             NaN  10262.0     NaN        NaN      NaN        NaN
Kolkata        9345.0      NaN     NaN        NaN      NaN        NaN
Mumbai            NaN      NaN     NaN     3342.0      NaN        NaN
Exploratory Data Analysis у Python

Порівняння вибірки з сукупністю

Source Destination Median Price (IDR) Median Price (dataset)
Banglore Delhi 4232.21 4823.0
Banglore New Delhi 12114.56 10976.50
Chennai Kolkata 3859.76 3850.0
Delhi Cochin 9987.63 10260.0
Kolkata Banglore 9654.21 9345.0
Mumbai Hyderabad 3431.97 3342.0
Exploratory Data Analysis у Python

Давайте потренуємось!

Exploratory Data Analysis у Python

Preparing Video For Download...