반응형
knn은 기본적으로 각 데이터 별로 떨어져 있는 거리를 구해 구분을 한다.
여기서 문제가 되는 것은 실제 거리를 나타내는 것이 아니라, 카테고리상으로 구분하기 위해
숫자를 쓴 경우다.
예컨대 질병에 걸렸으면 1, 질병에 걸리지 않았으면 0으로 데이터를 나타낸 경우
0과 1로 나타낸 것은 단순히 구분하기 위함이지, 실제의 차이에 기반을 둔 구분이 아니다.
그렇기 때문에 이러한 차이를 실제 차이로 받아들여서는 안된다.
이 문제를 해결하기 위해서 dummy coding을 진행하거나 정규화를 한다.
정규화에 대해 얘기해보자.
정규화를 한다는 것은 rescale을 한다는 것이다.
normalize<-function(x) {
return((x-(min(x))/(max(x)-min(x)))
}
위와 같은 코드로 rescale을 하게 될 경우
카테고리 데이터가 0과 1에서 존재하듯이 정규화한 데이터도 0,1 사이에 존재하게 되어
정규화가 이루어진다.
반응형
'R programming' 카테고리의 다른 글
ROC 커브와 AUC (를 이해하기 전 민감도와 특이도 이해하기) (0) | 2019.07.20 |
---|---|
지도학습(supervised learning)-나이브 베이지안 모델 in R(Today I learn) (0) | 2019.07.02 |
지도학습(supervised learning)-KNN : 분류에 대해 (today I learn) (0) | 2019.06.28 |
[EDA] facet_grid를 더 잘 써보기(Today I learn) (0) | 2019.06.20 |
[EDA] 탐색적 데이터 분석 (0) | 2019.06.19 |