히스토그램에서 몇 가지 재미있는 점을 발견할 수 있다. Age 차트에서 볼 수 있듯이, 젊은 환자가 대부분이며 특히 20대와 30대가 가장 많다. BMI, BloodPressure, Glucose 분포는 인구 관련 통계에서 흔히 볼 수 있는 종 모양의 정규분포를 보인다. Glucose 분포에는 다소 극단적인 값이 보이는데, 혈장 혈당이 무려 200에 가까운 환자도 있다.1 반면 BMI, BloodPressure, Glucose 값이 0인 환자도 있다. 하지만 사실 이 수치들은 0이 될 수 없으며 결측값일 확률이 높다. 2.6.1절에서 이 결측값을 전처리하는 방법을 자세히 살펴본다.
Pregnancies 분포에도 일부 이상치(outlier)가 있다. 이 중에는 심지어 15번 임신한 사람도 있다. 물론 불가능한 일은 아니지만 이상치는 예측 결과를 왜곡할 수 있기 때문에 분석에 항상 유의해야 한다.
목표 변수 분포도 살펴보자. 65%가 0번 클래스(당뇨 미발병)고, 나머지 35%가 1번 클래스(당뇨 발병)다. 머신 러닝으로 분류 모델을 만들 때는 훈련 데이터셋의 클래스 분포도 신경 써야 한다. 실세계 데이터에서 분류 모델이 잘 동작하려면 훈련 데이터셋이 실상을 잘 반영해야 하기 때문이다. 하지만 이 데이터셋의 클래스 분포는 실제와 다르다. 세계보건기구(World Health Organization, WHO)에 따르면 세계 인구 중 8.5%가 당뇨병을 앓고 있다.
Note ≡
이번 실습에서는 분류 모델을 운영 시스템에 배포하지 않으니 훈련 데이터셋의 클래스 분포도 걱정할 필요 없다. 하지만 앞으로 실무에서 만들 모델의 실세계 성능을 극대화하려면 훈련 데이터셋의 클래스 분포를 체크하는 연습을 해두는 것이 좋다.
1 역주 공복 혈당이 126mg/dL 이상이거나 당부하 2시간 후 혈당(또는 임의로 측정한 혈당)이 200mg/dL 이상이면 이미 당뇨병 확진이다.