마지막으로 변수 값의 범위가 서로 다르다는 점에 주의해야 한다. 예를 들어 DiabetesPedigree Function 변수 값은 0에서 2.5 사이인 반면, Insulin 변수 값은 0에서 800 사이다. 변수마다 범위가 다르면 신경망을 훈련시킬 때 문제가 발생할 수 있는데, 범위가 큰 변수가 작은 변수보다 예측에 더 큰 영향을 미치기 때문이다. 2.6.2절에서 변수를 표준화하는 데이터 전처리 방법을 알아본다.
또한, 밀도 차트로 각 특징 변수와 목표 변수 사이의 관계를 알아볼 수 있다. 이번에는 시본을 사용해 밀도 차트를 그려 보자. 시본은 맷플롯립 기반의 파이썬 데이터 시각화 라이브러리다. 각 변수의 밀도 차트를 그리는 코드는 다음과 같다. 각 차트의 당뇨 발병자 분포와 비발병자 분포를 따로 그려서 차이를 볼 수 있게 하자.
from matplotlib import pyplot as plt import seaborn as sns # 3 x 3 크기로 서브 차트를 만든다 plt.subplots(3,3,figsize=(10,10)) # 각 특징 변수의 밀도 차트를 그린다 for idx, col in enumerate(df.columns[:-1]): ax = plt.subplot(3,3,idx+1) ax.yaxis.set_ticklabels([]) sns.distplot(df.loc[df.Outcome == 0][col], hist=False, axlabel= False, kde_kws={'linestyle':'-', 'color':'black', 'label':"No Diabetes"}) sns.distplot(df.loc[df.Outcome == 1][col], hist=False, axlabel= False, kde_kws={'linestyle':'--', 'color':'black', 'label':"Diabetes"}) ax.set_title(col) # 차트가 여덟 개뿐이므로 마지막 아홉 번째(우측 하단) 서브 차트는 숨긴다 plt.subplot(3,3,9).set_visible(False) plt.tight_layout() plt.show()