RBFカーネルの動機付け

Rで学ぶSupport Vector Machines

Kailash Awati

Instructor

二次カーネル(デフォルトパラメータ)

  • データをテスト/トレインに分割(省略)
  • 次数2の多項式カーネルを使用(デフォルトパラメータ)
svm_model <- svm(y ~ ., data = trainset, 
                type = "C-classification", 
                kernel = "polynomial", 
                degree = 2)
svm_model
....
Number of Support Vectors:  204
# Predictions
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.8666667
plot(svm_model, trainset)
Rで学ぶSupport Vector Machines

第4章4.2 - 複雑なデータセット、デフォルトの二次カーネル、svm.plotによるプロット

Rで学ぶSupport Vector Machines

高次多項式を試す

  • 奇数次数(3、5、9など)を除外
  • 次数4を試す
svm_model <- svm(y ~ ., data = trainset, 
                type = "C-classification", 
                kernel = "polynomial", 
                degree = 4)
svm_model
...
Number of Support Vectors: 203
# Predictions
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.8583333
plot(svm_model, trainset)
Rで学ぶSupport Vector Machines

第4章4.2 - 複雑なデータセット、次数4のカーネル、svm.plotによるプロット

Rで学ぶSupport Vector Machines

別のアプローチ

  • ヒューリスティック: 近い点は同じクラスに属する:
    • K最近傍法に類似。
  • データセット内の点 X1 = (a, b) について:
    • カーネルは (a, b) で最大値を持つ
    • (a, b) から離れるにつれて減衰する
    • 減衰率はすべての方向で同じ
    • 減衰率は調整可能
  • この性質を持つ単純な関数が exp(-gamma * r)r はX1と他の点Xの距離)
Rで学ぶSupport Vector Machines

gammaによるRBFカーネルの変化(コード)

#rbf function
rbf <- function(r, gamma) exp(-gamma * r)

ggplot(data.frame(r = c(-0, 10)), aes(r)) + stat_function(fun = rbf, args = list(gamma = 0.2), aes(color = "0.2")) + stat_function(fun = rbf, args = list(gamma = 0.4), aes(color = "0.4")) + stat_function(fun = rbf, args = list(gamma = 0.6), aes(color = "0.6")) + stat_function(fun = rbf, args = list(gamma = 0.8), aes(color = "0.8")) + stat_function(fun = rbf, args = list(gamma = 1), aes(color = "1")) + stat_function(fun = rbf, args = list(gamma = 2), aes(color = "2")) + scale_color_manual("gamma", values = c("red","orange","yellow", "green","blue","violet")) + ggtitle("Radial basis function (gamma = 0.2 to 2)")
Rで学ぶSupport Vector Machines

様々なgammaにおけるRBFのグラフ

Rで学ぶSupport Vector Machines

練習しましょう!

Rで学ぶSupport Vector Machines

Preparing Video For Download...