マルチクラス ロジスティック回帰 コンポーネント

この記事では Azure Machine Learning デザイナーのコンポーネントについて説明します。

複数の値を予測するのに使用できるロジスティック回帰モデルを作成するには、このコンポーネントを使用します。

ロジスティック回帰を使用した分類は教師あり学習手法であるため、ラベル付けされたデータセットが必要となります。 モデルのトレーニングは、対象のモデルとラベル付けされたデータセットをコンポーネント (モデルのトレーニングなど) に入力として渡すことにより行います。 その後は、トレーニング済みのモデルを使用して新しい入力例の値を予測することができます。

Azure Machine Learning には、2 クラスのロジスティック回帰コンポーネントも用意されており、そちらはバイナリ変数または二値変数の分類に適しています。

多クラスのロジスティック回帰について

ロジスティック回帰は、統計学において、ある結果が起こる確率を予測する手段としてよく知られている手法であり、分類タスクで広く使われています。 このアルゴリズムは、データをロジスティック関数にフィッティングすることで事象の発生確率を予測します。

多クラスのロジスティック回帰では、分類器を使用して複数の結果を予測することができます。

多クラスのロジスティック回帰を構成する

  1. 多クラスのロジスティック回帰コンポーネントをパイプラインに追加します。

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

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

    • [Parameter Range]\(パラメーター範囲\) : 最適なパラメーターがわからず、パラメーター スイープを実行する場合は、このオプションを選択します。 反復する値の範囲を選択します。モデルのハイパーパラメーターの調整では、指定した設定の可能なすべての組み合わせに対して反復処理を行い、最適な結果を生成するハイパーパラメーターを決定します。

  3. オプティマイザーの収束に使用するしきい値を [Optimization tolerance]\(最適化の許容範囲\) に指定します。 イテレーション間の改善がしきい値を下回った場合に、アルゴリズムが終了して現在のモデルが返されます。

  4. [L1 regularization weight]\(L1 正則化の重み\)[L2 regularization weight]\(L2 正則化の重み\) : 正則化パラメーター L1 と L2 に使用する値を入力します。 どちらも 0 以外の値にすることをおすすめします。

    正則化とは、極端な係数の値を備えるモデルにペナルティーを与えることによってオーバーフィットを防止する手法です。 正則化は、仮説の誤りに対し、係数値に関連付けられているペナルティを加算することによって機能します。 極端な係数の値を持った正確なモデルにはより大きなペナルティが与えられる一方、相対的に値が控えめで正確でないモデルに与えられるペナルティは小さくなります。

    L1 正則化と L2 正則化とでは、効果と用途が異なります。 L1 は、疎なモデルに適用でき、高次元のデータを扱う際に役立ちます。 これに対し、L2 正則化は、疎ではないデータに適しています。 このアルゴリズムは、L1 正則化と L2 正則化の値に対する線形の組み合わせをサポートします。つまり、x = L1 かつ y = L2 である場合、正則化項の線形包が ax + by = c で定義されます。

    ロジスティック回帰モデルには、L1 項と L2 項に対するさまざまな線形結合が考案されてきました (エラスティック ネット型の正則化など)。

  5. Random number seed (乱数シード) : 複数回実行した場合の結果に再現性を確保したい場合、アルゴリズムのシードとして使用する整数値を入力します。 それ以外の場合は、システム クロック値がシードとして使用され、同じパイプラインを複数回実行した場合に、わずかに違った結果が得られます。

  6. ラベルが付けられたデータセットを接続し、モデルをトレーニングします。

    Note

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

    [モデルのハイパーパラメーターの調整] コンポーネントによって、パラメーターごとに設定の範囲が求められているとき、それに単一のパラメーター値セットを渡した場合、それらの値は無視され、学習器の既定値が使用されます。

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

  7. パイプラインを送信します。

次のステップ

Azure Machine Learning で使用できる一連のコンポーネントを参照してください。