Bing Image Creator で生成:close up photo of narcissus flowers, background is small lake, forests and blue sky, photo
前回は判別分析(Classification)のためのトレーニング用のデータフレーム、テスト用のデータフレームを作成したところで終わりました。
今回はその続きで、k-Nearest Neighborsによる判別とNaive Bayesによる判別をしてみます。
まず、classパッケージを読み込みましょう。
そうしたら、knn()関数で予測します。
k = がハイパーパラメータですが、適当に3でやってみました。
caretパッケージのconfusionMatrix()関数で判別結果を確認します。
large = 0 のものは、29駅中、21駅を的中したので、的中率は72%です。
large = 1 のものは、21駅中、21駅を的中したので、的中率は100%です。
全体の的中率は84%で、Balanced Accuracyは、86.21%です。
けっこう良い判別結果ではないでしょうか?
続いて、Naive Bayesによる判別を行います。今回は、e1071パッケージのnaiveBayes()関数を使ってみます。
まず、e1071パッケージの読み込みをします。
naiveBayes()関数で予測モデルを生成します。
predict()関数で予測します。
confusionMatrix()関数で結果を判定します。
large = 0 の的中率は、29駅中、23駅的中ですので、79.31%です。
large = 1 の的中率は、21駅中、18駅的中ですので、85.71%です。
全体の的中率は、82%、Balanced Accuracyは、82.51%でした。
Naive Bayesより、k-Nearest Neighbors のほうが成績がいいですね。
今回は以上です。
次回は、
です。
初めから読むには、
です。
今回のコードは以下になります。
#
# k-Nearest Neighborsで予測してみる
#
# classパッケージを読み込む
library(class)
#
# knn()関数で予測
pred_knn <- knn(train = df_train[ , -1],
test = df_test[ , -1],
cl = df_train$large,
k = 3)
#
# 判別結果
caret::confusionMatrix(pred_knn,
factor(df_test$large))
#
# Naive Bayesによる判別
#
# e1071パッケージを読み込む
library(e1071)
#
# naiveBayes()関数で判別モデルを生成
fit_nb <- naiveBayes(df_train[ , -1], factor(df_train$large),
laplace = 0.1)
fit_nb
#
# predict()関数で予測
pred_nb <- predict(fit_nb, df_test[ , -1], type = "class")
pred_nb
#
# 判別結果
caret::confusionMatrix(pred_nb, factor(df_test$large))
#