機械学習(k近傍法編)

パッケージの読み込み

library(kernlab)
library(class)

データセットにirisを取り込み、教師データと検証用データに分割します

data(iris)
n<-seq(1,nrow(iris),by=2)
iris.train<-iris[n,]
iris.test<-iris[-n,]
set.seed(1)

k近傍法のモデルを構築します

knn.result<-knn(iris.train[,-5],iris.test[,-5],iris.train[,5],k=5)

結果を確認する

head(knn.result)

[1] setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica

(knn.tab<-table(iris.test$Species,knn.result))

knn.result
setosa versicolor virginica
setosa 25 0 0
versicolor 0 24 1
virginica 0 0 25

予測精度を確認します

sum(diag(knn.tab))/sum(knn.tab)

[1] 0.9866667
98.7%といい結果です。

この記事が気に入ったらサポートをしてみませんか?