サポートベクトルマシン
import matplotlib.pyplot as plt from sklearn import datasets, svm from sklearn.metrics import accuracy_score, confusion_matrix from sklearn.metrics import precision_score, recall_score, f1_score # digitsデータをロード digits = datasets.loa…
ソフトマージンの双対問題は以下でした。ソフトマージンの決定関数は以下でした。双対問題では、決定関数においてはの形でのみ現れることに注意してください。 これは、特徴空間の内積さえ計算できればよいということです。そこで、内積をカーネル関数として…
勾配ベクトルを求める ソフトマージンの双対問題は以下でした。制約条件 のみに着目して、目的関数にラグランジュの未定乗数法を適用します。式 を で微分します。式 を で微分します。 アルゴリズム 1: を初期化します。 と設定します。 を設定します。2: …
ハードマージンの双対問題をSMOで解くと似通った記事になりますので、違いを中心に説明します。 2: の最適化 ソフトマージンの双対問題は以下でした。ハードマージンとの違いは の制約条件を考慮することです。 の更新式は以下のようになります。 1: の決定…
ハードマージンとの違い 2値分類について考えます。 訓練データが の個の入力ベクトルと それぞれに対応する目標値 からなり、 未知のデータ点 は の符号について分類されるとします。と、ここまではハードマージンと同じですが、違いは 訓練データは特徴空…
SMOとは SMO(逐次最小問題最適化法)はサポートベクトルマシンの訓練で生じる2次計画問題を解くためのアルゴリズムです。 1998年にマイクロソフトリサーチのJohn Plattによって発明されました。 SMO概要 以下を繰り返します。 1: ある基準にもとづきインデッ…
ハードマージン 2値分類について考えます。 訓練データが の 個の入力ベクトルと それぞれに対応する目標値 からなり、 未知のデータ点 は の符号について分類されるとします。訓練データは特徴空間で線形分離可能と仮定します。分類境界と最も近いデータ点…