始める無料で始める

`tune.svm()` を使う

この演習では、tune.svm() 関数の使い方を手を動かして練習します。章の前半で作成した放射状に分離可能なデータセットに基づく SVM モデルについて、costgammacoef0 の最適値を求めます。学習用データはデータフレーム trainset、テスト用データは testset に用意されており、e1071 ライブラリはあらかじめ読み込まれています。クラス変数 ytrainsettestset の3列目にあることも思い出してください。

また動画では、Kailash が cost=10^(1:3) を使い、10=10^1 から 1000=10^3 までを 10 倍刻みで探索していたことも復習しておきましょう。

この演習はコースの一部です

Rで学ぶSupport Vector Machines

コースを見る

演習の手順

  • 次のようにパラメータ探索の範囲を設定してください。
    • cost - 0.1(10^(-1))から 100(10^2)までを 10 倍刻み。
    • gammacoef0 - 0.1、1、10 のいずれか。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

#tune model
tune_out <- 
    tune.svm(x = trainset[, -3], y = trainset[, 3], 
             type = "C-classification", 
             kernel = "polynomial", degree = 2, cost = 10^(___:___), 
             gamma = c(___, ___, ___), coef0 = c(0.1, 1, 10))

#list optimal values
tune_out$best.parameters$___
tune_out$best.parameters$___
tune_out$best.parameters$___
コードを編集して実行