著者:飯尾 淳
本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温かく見守ってください。皆さんと共に勉強していきましょう。第23回では、機械学習ライブラリ「scikit-learn」で何ができるのかを紹介した上で、データを二つのクラスに分類するPythonプログラムを作成します。
シェルスクリプトマガジン Vol.93は以下のリンク先でご購入できます。![]()
![]()
図9 テストデータを作成するPythonコード
import pandas as pd
from sklearn.datasets import make_classification
(data, label) = make_classification(n_samples=1000,
n_features=2, n_classes=2,
n_informative=2,
n_redundant=0,
random_state=133)
df = pd.DataFrame({'x1':[d[0] for d in data],
'x2':[d[1] for d in data],
'label':label})
df.plot.scatter(x='x1', y='x2',
c=df['label'].map({0:'blue', 1:'red'}), s=5)
図10 LinearSVCを用いて学習と分類をするPythonコード
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
clf = LinearSVC(random_state=0, dual='auto', tol=1e-5)
clf.fit(data, label)
accuracy_score(clf.predict(data), label)
図11 分離面を描画するPythonコード
from mlxtend.plotting import plot_decision_regions
plot_decision_regions(data, label, clf=clf)
図13 NuSVCを用いて学習と分類をするPythonコード
from sklearn.svm import NuSVC
clf = NuSVC(nu=0.1, random_state=0)
clf.fit(data, label)
accuracy_score(clf.predict(data), label)
図15 SVCを用いて学習と分類をするPythonコード(その1)
from sklearn.svm import SVC
clf = SVC(gamma=0.1, random_state=0)
clf.fit(data, label)
accuracy_score(clf.predict(data), label)
図17 SVCを用いて学習と分類をするPythonコード(その2)
from sklearn.svm import SVC
clf = SVC(gamma=0.1, random_state=0)
clf.fit(data, label)
accuracy_score(clf.predict(data), label)