irisデータをロジスティック回帰とSVMで分類してみた
Coursera の Machine Learning の演習は、コスト関数とその最小化を自前で実装することになるのでなかなか大変だけど、python の sklearn を使うと交差検定含め、ものすごくカンタンに書ける。
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
カンタンに書けるが故に、基礎理論をきちんと理解し、思うように結果が出ないときに原因分析できる力が必要だと感じます。 月並みですが。