K-Nearest Neighbor 결과 해석
ㄴ정확도(Accuracy)
ㄴKappa통계량=관측된 정확도-기대 정확도/1-기대정확도
*Accuracy vs Kappa 통계량
Accuracy
0<정확도<1
1에 가까울 수록 좋음
Kappa통계량
1-<Kappa통계량<1
1에 가까울 수록 좋음
*데이터 소개
ㄴ와인 데이터
#install.packages("caret", depenencies=TRUE)
library(caret)
1)str
raqdata<-read.csv(file="파일경로/wine.csv", header=TRUE)
rawdata$Class<-as.factor(rawdata$Class)
str(rawdata)
#raw데이터에 접근을 해서 str정리
#as.factor는 숫자지만 숫자가 아니라고 판단을 하게 해줌
2)트레이닝-테스트 데이터 분할
analdata<-rawdata
set.seed(2020) #랜덤으로 뽑지만 순서에 따라 분류를 해줌(숫자는 아무것으로)
datatotal<-sort(sample(nrow(analdata),nrow(analdata)*0.7)) #sample nrow() 데이터행(row)수를 뽑겠다는 의미
ㄴsort(): 오름차순 정렬
3)모형학습
train<-rawdata[datatotal,]
test<-rawdata[-datatotal,]
train_x<-train[,1:13]
train_y<-train[,14]
test_x<-test[,1:13]
test_y<-test[,14]
ctrl<-trainControl(method="repeatedcv",number=10,repeats=5)
customGrid<-expand.grid(k=1:10)
knnFit<-train(Class~., data=train, method="knn", trControl=ctrl, preProcess=c("center","scalse"),
truneGrid=customGrid, metric="Accuracy")
#plot으로 가시화 시켜서 확인
*예측
데이터불러오기->트레이닝 테스트->학습->모형
pred_test<-predict(knnFit#모형, newdata=test)
confusionMatric(pred_test,test$Class)
#prediction, Reference 차이를 확인, Accracy 확인
4)변수중요도
importance_knn<-varlmp(knnFit,scale=FASLE)
plot(importance_knn)
#각 피쳐가 중요도 순으로 정렬되어 출력됨
'data analysis, R' 카테고리의 다른 글
R-공부 : 스코어링, Decision Tree & Random Forest (0) | 2021.05.08 |
---|---|
R공부- Logistic Regression 개념 이해 (0) | 2021.05.03 |
R공부- 데이터로 분석하는 지도학습 개념 (0) | 2021.05.01 |
R공부- 단순 선형 회귀분석 (0) | 2021.04.30 |
R_공부: 머신러닝 & 확률 기초 (0) | 2021.04.29 |
댓글