【Scikit-learn】サポートベクタマシン(SVM)で教師あり学習(分類器作成)

スポンサーリンク

この記事では、Pythonと機械学習ライブラリ「scikit-learn」を用いて、サポートベクタマシン(SVM)による教師あり学習を行う方法について紹介します。

スポンサーリンク

サポートベクターマシンとは

サポートベクターマシン(略称:SVM)は、教師あり学習モデルの1つです。
2クラスのパターン識別器としては非常に強力なモデルで、データの分類や回帰などで大きな効果を発揮しています。

【SVMの詳細】
サポートベクターマシンの原理

ソースコード

サンプルプログラムを下記に示します。

【プログラムの説明】
Scikit-learnのライブラリには、あらかじめテスト用のデータ(digitsデータ)があります。
その中身は、64ピクセル(8×8)のグレイスケールの手書き数字の画像データ1797個分です。(行列形式で格納されている)
今回はこれをSVMを使って多クラス分類しています。
【svm.SVCの説明】
svm.SVCでは、gammaとC、2つのパラメータを指定しています。
γはRBFカーネル(ガウシアンカーネル)のパラメータです。(値が大きいほど境界が複雑になる)
Cはどれだけ誤分類を許容するかのパラメータです。(値が小さいほど誤分類を許容)
digits.targetには、各画像の正解データ(数字)が格納されています。

実行結果

サンプルプログラムの実行結果です。
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape=None, degree=3, gamma=0.001, kernel=’rbf’, max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)
学習(トレーニング)した結果(SVMで完成した分類器のパラメータ)となります。

完成した分類器を使って、データを分類をする方法は下記事で解説しています。
【Scikit-learn】サポートベクタマシン(SVM)で多クラス分類

関連記事

Scikit-learnの導入方法や、その他の使い方については下記事で解説しています。
Scikit-learnをインストールする方法
Scikit-learn入門・使い方
機械学習のアルゴリズム入門

スポンサーリンク

シェア&フォローお願いします!