scikit-learn機械学習㉒SVM理論1:マージンの最大化
前回は、scikit-learnのk-NN(KNeighborsClassifier)を使った分類の実験を行いました。今回から、数回の記事に分けてサポート・ベクトル・マシン(Support Vector Machine、SVM)による分類の理論を解説します。
今回は、マージンの最大化による分類について紹介します。また、サポート・ベクトルとは何かなど関連する概念について解説します。
そのために具体例としてデータを2つのクラスに分類することを考えます。
下図を見て下さい。
各データポイントは$${(x_1, x_2)}$$と2つの値を持つベクトルとして表現されています。また、データはクラス1(赤)とクラス2(青)に分かれています。
この2つのクラスに属するデータを分けることを考えます。下図のように線を引いてみました。
この境界線を使うとデータポイントをクラス1と2に分けることができています。
でもこれって最適な境界線でしょうか。
他にも下図のように境界線を引くこともできます。
実際、たくさんの境界線が考えられます。
どれもデータポイントを2つのクラスに分けています。
上図のデータポイントが訓練データだとしたら、どの境界線を使っても大丈夫そうですが、どうでしょうか。
仮にテストデータとして以下の星マークの点があったとします。
このテストデータがクラス1であるかクラス2であるかによって、どの境界線が有効なのかが変わってきます。しかし、テストデータを使ってモデルの学習をするわけにはいきません。
ではどうしましょうか。
この記事が気に入ったらチップで応援してみませんか?