サポートベクターマシン (SVM) 4
import numpy as np
from sklearn.svm import SVC
X = np.array([[-1, -1], [-1.5, 0], [-2, -1],
[1, 1], [2, 1], [1, 2]])
y = np.array([-1, -1, -1, 1, 1, 1])
clf = SVC(kernel='linear') # わかりやすさのため線形
clf.fit(X, y)
print('重み', clf.coef_)
print('切片', clf.intercept_)
● ラベル +1
● ラベル -1
● サポート
• 2クラス分類器であって「2クラスを仕切る
仕切りを入れて仕切りに最も近いデータと
のマージンを最大にしよう」といったもの。
‐ 図では入力空間に直接仕切りを入れているが (線
形)、往々にして特徴空間にとばしてからやる。
‐ 図ではマージン部分へのはみ出しがないがはみ出
してもよい。はみ出しの総和をペナルティする。
• 仕切りが非線形なとき、データが乱雑なと
き、学習結果の解釈が不要なとき等にロジ
スティック回帰より適すると思われる。
サポート: 仕切りに
最も近いデータ。