Pythonと機械学習スマートフォン用の表示で見るPythonと機械学習Pythonも機械学習も初心者ですが、頑張ってこのブログで勉強してこうと思います。サポートベクターマシンを実際に試してみる2016-09-06サポートベクターマシンを実際に試してみる機械学習2次計画法のスクリプトが出来たので、サポートベクターマシンに実装してみます。制約条件は、になります。これらを行列形式で表します。含め以下のようにベクトルで表します。しきい値を考慮し一番左の列に1を入れておきます。以下のように作ってやります。これら(3)〜(5)式を使って目的関数と制約条件を行列表記すると、になります。目的関数であるマージンにはしきい値項は含まれないので少し工夫する必要があります。かかる係数になります。置いてしまうと逆行列が計算できなくなってしまいます。逆行列を計算できるようにしておきます。行列に当てはめていきましょう。以下が、2次計画法を実装したサポートベクターマシンのスクリプトです。確認のため、scikit-learnのサポートベクターマシンでも同じ学習を実施して、同じ結果になるかを試してみます。main関数中で以下4つの結果を出力するようにしています。オリジナルデータの学習結果(自作スクリプト版)オリジナルデータの学習結果(scikit-learn版)1回目の結果のサポートベクトルをトレーニングサンプルから間引いた結果(自作スクリプト版)1回目の結果のサポートベクトルをトレーニングサンプルから間引いた結果(scikit-learn版)オリジナルデータの学習結果(自作スクリプト版)サポートベクトルを〇で囲むようにしました。決定境界は黒で線を引いています。+1側のサポートラインは青で、-1側のサポートラインは赤で書いています。以下マージンとサポートベクトルの出力です。■オリジナルデータ4回目のイタレーションで最適解が見つかりました。1.9]]オリジナルデータの学習結果(scikit-learn版)以下マージンとサポートベクトルの出力です。3.0]]マージンもサポートベクトルも自作スクリプトの結果と一致しました。重みベクトルが取得できます。■サポートベクターを間引いてみる3回目のイタレーションで最適解が見つかりました。3.3]]みごとに一致していますね。APIというもの...2016-08-25サポートベクターマシン名前だけ聞くとなんか凄そうなマシンに聞こえますね。(13)はてなブログをはじめよう!dardenさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。