범주형 데이터 고려 사항

Python으로 하는 탐색적 데이터 분석

George Boorman

Curriculum Manager, DataCamp

왜 EDA를 수행할까요?

  • 패턴과 관계를 탐지
  • 질문 또는 가설 생성
  • 머신 러닝을 위한 데이터 준비

Question mark in a red neon light

1 이미지 출처: https://unsplash.com/@simonesecci
Python으로 하는 탐색적 데이터 분석

대표성이 있는 데이터

  • 표본은 모집단을 대표해야 합니다

예시:

  • 미국의 교육 vs 소득
    • 프랑스 데이터는 사용할 수 없습니다

USA flag

France flag

1 이미지 출처: https://unsplash.com/@cristina_glebova; https://unsplash.com/@nimbus_vulpis
Python으로 하는 탐색적 데이터 분석

범주형 클래스

  • 클래스 = 레이블
  • 결혼에 대한 인식 설문조사
    • 혼인 상태
      • 미혼
      • 기혼
      • 이혼
Python으로 하는 탐색적 데이터 분석

클래스 불균형

bar plot showing counts of marital statuses in a sample - 700 divorced, 250 single, and 50 married

Python으로 하는 탐색적 데이터 분석

클래스 빈도

print(planes["Destination"].value_counts())
Cochin       4391
Banglore     2773
Delhi        1219
New Delhi     888
Hyderabad     673
Kolkata       369
Name: Destination, dtype: int64
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

*우리 표본이 모집단(인도 국내선 항공편)을 대표하나요?

Python으로 하는 탐색적 데이터 분석

교차표

Call pd-dot-crosstab

pd.crosstab(
Python으로 하는 탐색적 데이터 분석

인덱스 선택

Select column to use as the index

pd.crosstab(planes["Source"],
Python으로 하는 탐색적 데이터 분석

열 선택

Select the column

pd.crosstab(planes["Source"], planes["Destination"])
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
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
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
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
Python으로 하는 탐색적 데이터 분석

연습해 봅시다!

Python으로 하는 탐색적 데이터 분석

Preparing Video For Download...