Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

UCI Machine Learning Repository の Bank Marketing のデータの分析8 - サポートベクターマシーンによる予測

(Bing Image Creator で生成: プロンプト: Closeup of white Swertia bimaculata flowers, background is deep forest, sun shining like linear thread, photo)

www.crosshyou.info

の続きです。

今回は、kernlab パッケージの ksvm() 関数でサポートベクターマシーンによる予測です。

サポートベクターマシーンってなんかカッコイイ名前ですね。パッケージの読み込みをします。

ksvm() 関数を使い、モデルを推定します。

type = "C-svc" として Classification にしています。cross = 3 としてるので、クロスバリデーションの数は 3 です。

この関数の結果が返ってくるのが、長くて、5分以上かかりました。

いつものように、predict() 関数で予測します。

成績発表です。

Accuracy は 0.8988, Balanced Accuracy は 0.6046 でした。

今まで結果にこの結果を追加します。

accuracy は 前回のツリーモデルと同じで一番よくて、 balanced accuracy は knn に次ぐ値です。

今回は以上です。

次回は

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# 第4の方法: サポートベクターマシーン
#
# kernlab パッケージの読み込み
library(kernlab)
#
# kvsm()関数でモデルを推定
set.seed(123)
svm_model <- ksvm(yes ~ ., data = df_train,
                  type = "C-svc",
                  corss = 3)
#
svm_model
#
# svm_model で予測
svm_pred <- predict(svm_model, df_test)
#
# 予測結果
confusionMatrix(factor(svm_pred),
                factor(df_test$yes))
#
# 予測結果を追加
estimates_results <- estimates_results |> 
  rbind(
    tibble(
      model = "svm",
      accuracy = 0.8988,
      b_accuracy = 0.6046
    )
  )
estimates_results
#