본문 바로가기
data analysis, R

R공부- K-Nearest Neighbor

by 데이터 퍼즐 2021. 5. 2.
반응형

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)

#각 피쳐가 중요도 순으로 정렬되어 출력됨

 

반응형

댓글