次の方法で共有


2 クラス サポート ベクター マシン

サポート ベクター マシン アルゴリズムを使用して二項分類モデルを作成します

カテゴリ: Machine Learning/初期化モデル/分類

注意

適用対象: Machine Learning Studio (クラシック)のみ

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

モジュールの概要

この記事では、Machine Learning Studio (クラシック) の2 クラスサポートベクターマシンモジュールを使用して、サポートベクターマシンアルゴリズムに基づくモデルを作成する方法について説明します。

サポート ベクター マシン (SVM) は、よく調査されたクラスの教師あり学習手法です。 この特定の実装は、連続変数かカテゴリ変数に基づいて、推定される 2 つの結果を予測するのに適しています。

モデルパラメーターを定義した後、 トレーニングモジュールのいずれかを使用してモデルをトレーニングし、ラベルまたは結果列を含む タグ付きデータセット を提供します。

サポートベクターマシンの詳細

サポート ベクター マシンは、機械学習アルゴリズムの中でも最も初期のものであり、情報検索からテキストや画像の分類まで、さまざまな用途で SVM モデルは使用されてきました。 SVM は、分類タスクと回帰タスクの両方に使用できます。

この SVM モデルは、ラベル付けされたデータを必要とする教師あり学習モデルです。 このアルゴリズムは、トレーニング プロセスで入力データを分析し、"超平面" と呼ばれる多次元の特徴空間でパターンを認識します。 入力されたすべての例はこの空間内の点として表現され、各カテゴリ間のギャップが最も広く明確に分割されるような方法で出力カテゴリにマップされます。

予測の場合は、新しい例が SVM アルゴリズムによって、それぞれのカテゴリに割り当てられ、同じ空間にマッピングされます。

Two-Class サポートベクターマシンを構成する方法

このタイプのモデルでは、データセットを正規化したうえで分類器のトレーニングに使用することをお勧めします。

  1. Studio (クラシック) で、 2 クラスサポートベクターマシン モジュールを実験に追加します。

  2. [Create trainer mode](トレーナー モードの作成) オプションを設定して、モデルのトレーニング方法を指定します。

    • Single Parameter (単一パラメーター) : モデルの構成方法がわかっている場合、特定の値のセットを引数として渡すことができます。

    • パラメーターの範囲: 最適なパラメーターがわからない場合は、複数の値を指定し、 モデルハイパーパラメーターの調整 モジュールを使用して最適な構成を見つけることで、最適なパラメーターを見つけることができます。 トレーナーは、設定の複数の組み合わせに対して反復処理を行い、最適なモデルを生成する値の組み合わせを決定します。

  3. モデルの構築時に使用されるイテレーションの回数を示す数値を [Number of iterations]\(イテレーションの数\) に入力します。

    このパラメーターを使用して、トレーニングの速度と正確性のトレードオフを制御できます。

  4. L1 正則化の重みとして使用する値を [ラムダ] に入力します。

    モデルのチューニングには、この正則化係数を使用できます。 値を大きくすると、モデルの複雑度に対するペナルティーが大きくなります。

  5. トレーニング前にフィーチャーを正規化する場合は、 [Normalize features]\(フィーチャーの正規化\) オプションを選択します。

    正規化を適用すると、トレーニング前に、データ ポイントが平均値を中心として 1 単位の標準偏差を備えるようにスケーリングされます。

  6. 係数を正規化するには、 [Project to the unit sphere]\(単位球面への投影\) オプションを選択します。

    単位空間に値を投影すると、トレーニング前に、データ ポイントが 0 を中心として 1 単位の標準偏差を備えるようにスケーリングされます。

  7. 繰り返し実行したときの再現性を確保したい場合は、シードとして使用する整数値を [Random number seed]\(乱数シード\) に入力します。 それ以外の場合、システム クロック値がシードとして使用され、実行するごとに、わずかに違った結果が得られます。

  8. トレーニングセットまたは検証セットで不明な値のグループを作成するには、[ 不明なカテゴリを許可する] オプションを選択します。 この場合、既知の値に対してモデルの精度が低下する可能性がありますが、新しい (不明な) 値に対してより良い予測を提供できます。

    これを選択解除した場合、モデルはトレーニング データに含まれる値のみを受け入れることができます。

  9. ラベルが付けられたデータセットとトレーニングモジュールのいずれかを Connect します。

    注意

    モデルのトレーニングにパラメーター範囲を渡すと、パラメーター範囲リストの最初の値のみが使用されます。

    パラメーター値の1つのセットを チューニングモデルのハイパーパラメーター モジュールに渡す場合、各パラメーターに設定の範囲が必要になると、値が無視され、学習器の既定値が使用されます。

    [ パラメーター範囲 ] オプションを選択し、任意のパラメーターに1つの値を入力すると、指定した単一の値がスイープ全体で使用されます。これは、他のパラメーターが値の範囲をまたいで変化する場合でも同様です。

  10. 実験を実行します。

結果

トレーニングの完了後:

この学習アルゴリズムの使用例については、 Azure AI Galleryを参照してください。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

使用上のヒント

このタイプのモデルでは、データセットを正規化したうえで分類器のトレーニングに使用することをお勧めします。

最新の研究ではより高い精度を持つアルゴリズムの開発が進んでいますが、精度よりも速度を優先する場合、このアルゴリズムは単純なデータ セット上でその力を発揮します。 2 クラス サポート ベクター モデルを使用しても望んだ結果が得られない場合、次の分類方法のいずれかを試してください。

モジュールのパラメーター

名前 Range Type Default 説明
イテレーション数 >=1 Integer 1 イテレーションの数
Lambda >=double.Epsilon Float 0.001 L1 正則化の重みです。 0 以外の値を使用することで、トレーニング データセットに対するモデルのオーバーフィットを回避できます。
特徴の正規化 Any Boolean True True の場合は特徴を正規化します。
単位球への射影 Any Boolean False True の場合は、特徴を単位円に射影します。
乱数シード Any Integer モデルで使用される乱数ジェネレーターのシードです。 既定の場合は空白のままにします。
不明なカテゴリ レベルの許可 Any Boolean True True の場合、各カテゴリ列の追加レベルを作成します。 トレーニング データセットでは使用できないテスト データセットのレベルはすべて、この追加レベルにマップされます。

出力

名前 説明
未トレーニング モデル データ テーブル 未トレーニング二項分類モデル

こちらもご覧ください

分類
モジュールの一覧 (アルファベット順)