Python と R の違い (サポートベクターマシン)

本ページでは、R と Python それぞれで機械学習の一手法である、サポートベクターマシン (Support Vector Machine; SVM) を利用した判別分析の方法を紹介します。

本例では、あくまで両環境でのコードや分析結果の表示についての比較の目的で行ったため、分析手法の説明や学習や検証における詳細なパラメータ設定は行っていないことをあらかじめご了承ください。

R での実装例

e1071 パッケージを用いて実行できます。

ソースコード

library(e1071)

data(iris)
trainset <- iris[1:149,]
testset <- iris[150,][-5]

svm.model <- svm(Species ~ ., data = trainset)

svm_pred <- predict(svm.model, testset)
svm_pred

出力結果

svm

Python での実装例

scikit-learn の sklearn.svm.SVC クラスを用いて実行できます。

ソースコード

from sklearn.datasets import load_iris
from sklearn.svm import SVC

iris = load_iris()
X, y = iris.data[:-1], iris.target[:-1]

svc = SVC()
svc.fit(X, y)

print(svc.predict([iris.data[-1]]))

出力結果

“2” と出力されているのは “Virginica” なので、正しく推定できたことがわかります。

svm-py

参考: Python for R Users