knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

sklearnで、 SVM (サポートベクターマシン) 分類問題

index:

概要

機械学習で、SVM を使用した。分類問題をテストしてみたいと
思います

SVM 定義としては、下記のようでした
訓練データにおいて、他クラスの中で最も近い位置にあるサポートベクタを基準として、
距離(マージン)が最も大きくなるように境界線を引く方法

環境

python 3.5.2
sklearn

コード

python3 です。
github.com

データセット

load_breast_cancer のデータ使用しました。

処理

LinearSVC を、使用し、
学習、予測、評価のスコアを求めます。

model = LinearSVC()
clf = model.fit(X_train,y_train)
#pred= model.predict(X_train)
pred= model.predict(X_test )
#print("pred=", pred.shape )

df= pd.DataFrame(pred)
print(df.head() )
#quit()
print("train:",clf.__class__.__name__ ,clf.score(X_train,y_train))
print("test:",clf.__class__.__name__ , clf.score(X_test,y_test))

結果

(426, 30) (143, 30)
(426,) (143,)
   0
0  1
1  1
2  1
3  1
4  0
train: LinearSVC 0.870892018779
test: LinearSVC 0.874125874126