코드를 실행하면 다음과 같이 연속형 데이터와 명목형 데이터로 분류됩니다.
▲ 그림 3-33 예제 데이터를 연속형 데이터와 명목형 데이터로 분류
연속형 데이터의 모든 특성에 동일하게 중요성을 부여하기 위해 스케일링(scaling)을 적용합니다. 이는 데이터 범위가 다르기 때문에 범위에 따라 중요도가 달라질 수 있는 것(예를 들어 1000원과 1억 원이 있을 때 1000원의 데이터는 무시)을 방지하기 위함입니다. 일정한 범위를 유지하도록 사이킷런의 MinMaxScaler() 메서드를 사용합니다.
코드 3-32 데이터 전처리(스케일링 적용)
mms = MinMaxScaler()
mms.fit(data)
data_transformed = mms.transform(data)
데이터에 대한 전처리가 완료되었기 때문에 우리가 원하는 적당한 K 값을 알아보겠습니다.