はじめに
サポートベクターマシン (SVM) は、分類と回帰分析に使用される人気のある機械学習アルゴリズムです。SVM は、異なるクラスのデータを分離する最適な境界を見つけようとします。この実験では、LinearSVC のサポートベクターをプロットする方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook にアクセスして練習します。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
まず、この実験に必要なライブラリをインポートする必要があります。NumPy、Matplotlib、make_blobs、LinearSVC、および DecisionBoundaryDisplay ライブラリを使用します。
データの生成
Scikit-learn の make_blobs() 関数を使用して、いくつかのランダムなデータを生成します。この関数は、クラスタリング用のガウスブロブを生成します。2 つの中心を持つ 40 個のサンプルを生成します。
データのプロット
Matplotlib を使用して生成したデータをプロットします。scatter() 関数を使用してデータをプロットします。
LinearSVC を学習する
2 つの異なる正則化パラメータを使用して LinearSVC モデルを学習します。ヒンジ損失関数を使用してモデルを学習します。モデルを学習するには fit() 関数を使用します。
サポートベクトルを取得する
サポートベクトルは、マージン境界内にあるサンプルであり、そのサイズは通常 1 に制限されます。決定関数を通じてサポートベクトルを取得することができます。モデルの決定関数を取得するには decision_function() 関数を使用します。その後、決定関数からサポートベクトルを計算します。
サポートベクトルをプロットする
データと同じプロットにサポートベクトルをプロットします。サポートベクトルをプロットするには scatter() 関数を使用します。
決定境界を表示する
プロット上に決定境界を表示します。決定境界を表示するには DecisionBoundaryDisplay クラスを使用します。
プロットを表示する
最後に、サポートベクトルと決定境界を含むプロットを表示します。
まとめ
この実験では、LinearSVC のサポートベクトルをプロットする方法を学びました。モデルの決定関数を取得するには decision_function() 関数を使用し、その後、決定関数からサポートベクトルを計算しました。また、DecisionBoundaryDisplay クラスを使用して、プロット上に決定境界を表示する方法も学びました。