Uwagi dotyczące danych kategorycznych

Eksploracyjna analiza danych w Pythonie

George Boorman

Curriculum Manager, DataCamp

Po co przeprowadzać EDA?

  • Wykrywanie wzorców i zależności

 

 

  • Formułowanie pytań i hipotez

 

 

  • Przygotowanie danych do uczenia maszynowego

Znak zapytania w czerwonym neonowym świetle

1 Image credit: https://unsplash.com/@simonesecci
Eksploracyjna analiza danych w Pythonie

Dane reprezentatywne

  • Próba reprezentuje populację

Na przykład:

  • Wykształcenie a dochód w USA
    • Nie można używać danych z Francji

Flaga USA

Flaga Francji

1 Image credits: https://unsplash.com/@cristina_glebova; https://unsplash.com/@nimbus_vulpis
Eksploracyjna analiza danych w Pythonie

Klasy kategoryczne

  • Klasy = etykiety

 

  • Badanie postaw wobec małżeństwa
    • Stan cywilny
      • Wolny/wolna
      • Żonaty/zamężna
      • Rozwiedziony/rozwiedziona
Eksploracyjna analiza danych w Pythonie

Nierównowaga klas

wykres słupkowy przedstawiający liczebność stanów cywilnych w próbie – 700 rozwiedzionych, 250 stanu wolnego, 50 żonatych/zamężnych

Eksploracyjna analiza danych w Pythonie

Częstość klas

print(planes["Destination"].value_counts())
Cochin       4391
Banglore     2773
Delhi        1219
New Delhi     888
Hyderabad     673
Kolkata       369
Name: Destination, dtype: int64
Eksploracyjna analiza danych w Pythonie

Względna częstość klas

  • 40% krajowych lotów w Indiach ma Delhi jako cel podróży
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
  • Czy próba jest reprezentatywna dla populacji (krajowe loty w Indiach)?
Eksploracyjna analiza danych w Pythonie

Tabelaryzacja krzyżowa

Wywołanie pd.crosstab

pd.crosstab(
Eksploracyjna analiza danych w Pythonie

Wybór indeksu

Wybór kolumny jako indeksu

pd.crosstab(planes["Source"],
Eksploracyjna analiza danych w Pythonie

Wybór kolumn

Wybór kolumny

pd.crosstab(planes["Source"], planes["Destination"])
Eksploracyjna analiza danych w Pythonie

Tabelaryzacja krzyżowa

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
Eksploracyjna analiza danych w Pythonie

Rozszerzanie tabelaryzacji krzyżowej

Source Destination Mediana ceny (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
Eksploracyjna analiza danych w Pythonie

Wartości zagregowane z 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
Eksploracyjna analiza danych w Pythonie

Porównanie próby z populacją

Source Destination Mediana ceny (IDR) Mediana ceny (zbiór danych)
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
Eksploracyjna analiza danych w Pythonie

Czas na ćwiczenia!

Eksploracyjna analiza danych w Pythonie

Preparing Video For Download...