irisデータをロジスティック回帰とSVMで分類してみた

Coursera の Machine Learning の演習は、コスト関数とその最小化を自前で実装することになるのでなかなか大変だけど、pythonsklearn を使うと交差検定含め、ものすごくカンタンに書ける。

import numpy as np
import sklearn.datasets as datasets
from sklearn.linear_model import LogisticRegression
from sklearn import svm
from sklearn.cross_validation import cross_val_score

iris = datasets.load_iris()
logistic = LogisticRegression()

# Logistic Regression 
scores = cross_val_score(logistic, iris.data, iris.target, cv=5)
print("logistic regression", np.mean(scores))

# SVM(kernel:rbf)
scores = cross_val_score(svm.SVC(kernel='rbf'), iris.data, iris.target, cv=5)
print("svm(rbf): ", np.mean(scores))

# SVM(kernel:linear)
scores = cross_val_score(svm.SVC(kernel='linear'), iris.data, iris.target, cv=5)
print("svm(linear): ", np.mean(scores))
logistic regression 0.96
svm(rbf):  0.98
svm(linear):  0.98

カンタンに書けるが故に、基礎理論をきちんと理解し、思うように結果が出ないときに原因分析できる力が必要だと感じます。 月並みですが。