다음은 iris 자료로 k-최근접 이웃(k-NN) 분류를 수행한 R 코… | [ADsP] 데이터분석 준전문가 기출유형 모의고사 4회 상세 페이지
1[ADsP] 데이터분석 준전문가 기출유형 모의고사 4회
다음은 iris 자료로 k-최근접 이웃(k-NN) 분류를 수행한 R 코드와 출력이다. 출력에 대한 해석으로 옳은 것은?> library(class) > set.seed(7) > idx <- sample(1:150, 100) > tr <- scale(iris[idx, 1:4]) > te <- scale(iris[-idx, 1:4], center = attr(tr, "scaled:center"), scale = attr(tr, "scaled:scale")) > cl <- iris$Species[idx] > for (k in c(1, 15, 51)) { > p_tr <- knn(tr, tr, cl, k = k) > p_te <- knn(tr, te, cl, k = k) > cat("k =", k, " train:", round(mean(p_tr == cl), 3), " test:", round(mean(p_te == iris$Species[-idx]), 3), "\n") > }k = 1 train: 1 test: 0.88 k = 15 train: 0.97 test: 0.9 k = 51 train: 0.89 test: 0.8
1
k=1 의 훈련 정확도는 1 이다
2
k 가 클수록 시험 정확도가 높아진다
3
훈련 정확도는 k=51 이 가장 높다
4
시험 정확도 최고는 k=1 이다
해설
k=1 은 훈련 관측치마다 자기 자신이 최근접 이웃이므로 출력의 train 값이 1 이며, 이는 과적합 신호이다.
출력의 test 는 k=1 이 0.88, k=15 가 0.9, k=51 이 0.8 로 적당한 k 에서 가장 높고, 시험 자료는 훈련 자료의 평균·표준편차로 표준화했다.
- k 증가: k=51 에서 시험 정확도가 0.8 로 떨어진다
- 훈련 정확도: k=51 의 train 0.89 가 가장 낮다
- 시험 최고: k=15 의 0.9 가 k=1 의 0.88 보다 높다
오류나 개정된 내용이 보이면 알려주세요