次の方法で共有


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

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

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

ロジスティック回帰は、さまざまな種類の問題をモデル化するのに使用される有名な統計手法です。 このアルゴリズムは "教師あり学習" 手法であるため、モデルをトレーニングするための結果をあらかじめ含んだデータセットを用意する必要があります。

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

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

このコンポーネントでは、分類アルゴリズムが二値変数またはバイナリ変数に最適化されています。 複数の結果を分類する必要がある場合は、多クラスのロジスティック回帰コンポーネントを使用してください。

構成方法

このモデルをトレーニングするには、ラベル列またはクラス列を含んだデータセットを用意する必要があります。 このコンポーネントは 2 クラスの問題を意図しているため、ラベル列またはクラス列には厳密に 2 つの値が格納されていることが必要です。

たとえば、[Voted] というラベル列であれば、その値には "Yes" と "No" が考えられます。 または、[Credit Risk] であれば、"High" と "Low" という値が考えられるでしょう。

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

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

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

    • [Parameter Range](パラメーター範囲) 最適なパラメーターがわからない場合は、モデルのハイパーパラメーターの調整コンポーネントを使用することにより、最適なパラメーターを見つけることができます。 ある値の範囲を指定すると、トレーナーにより設定の複数の組み合わせに対して反復処理が行され、最適な結果を生み出す値の組み合わせが決定されます。

  3. [Optimization tolerance](最適化の許容範囲) に、モデルを最適化する際に使用するしきい値を指定します。 指定したしきい値をイテレーション間の改善が下回った場合に、アルゴリズムは解に収束したと見なされ、トレーニングが終了します。

  4. 正則化パラメーター L1 と L2 に使用する値を [L1 regularization weight](L1 正則化の重み)[L2 regularization weight](L2 正則化の重み) に入力します。 どちらも 0 以外の値にすることをおすすめします。
    "正則化" とは、極端な係数の値を備えるモデルにペナルティーを与えることによってオーバーフィットを防止する手法です。 正則化は、仮説の誤りに対し、係数値に関連付けられているペナルティを加算することによって機能します。 これにより、極端な係数の値を持った正確なモデルにはより大きなペナルティが与えられる一方、相対的に値が控えめで正確でないモデルに与えられるペナルティは小さくなります。

    L1 正則化と L2 正則化とでは、効果と用途が異なります。

    • L1 は、疎なモデルに適用でき、高次元のデータを扱う際に役立ちます。

    • これに対し、L2 正則化は、疎ではないデータに適しています。

    このアルゴリズムは、L1 正則化と L2 正則化の値に対する線形の組み合わせをサポートします。つまり、x = L1 かつ y = L2 である場合、正則化項の線形包が ax + by = c で定義されます。

    Note

    L1 正則化と L2 正則化について、さらに詳しく知りたい場合は、 次の記事を参照してください。L1 正則化と L2 正則化の違いや、モデルのフィッティングに及ぼす影響が、ロジスティック回帰モデルとニューラル ネットワーク モデルのコード サンプルを使って解説されています: 機械学習向けの L1および L2 正規化

    ロジスティック回帰モデルには、L1 項と L2 項に対するさまざまな線形結合が考案されてきました (エラスティック ネット型の正則化など)。 こうした結合を参照しながら、自分のモデルに合った効果的な線形結合を定義することをおすすめします。

  5. L-BFGS 最適化に使用するメモリ量を [Memory size for L-BFGS](L-BFGS のメモリ サイズ) に指定します。

    L-BFGS は "Limited memory Broyden-Fletcher-Goldfarb-Shanno" の略です。 パラメーター推定の最適化アルゴリズムとして広く使用されています。 このパラメーターは、次のステップの計算用に保存する過去の位置と傾きの数を指定します。

    この最適化パラメーターによって、次のステップと方向の計算に使用されるメモリ量が制限されます。 指定するメモリ量を小さくすると、トレーニングにかかる時間は短縮されますが、正確さが低下します。

  6. [Random number seed](乱数シード) に整数値を入力します。 同じパイプラインを複数回にわたって実行したときの結果に再現性を確保したい場合は、シード値を定義することが大切です。

  7. ラベル付けされたデータセットをパイプラインに追加し、モデルをトレーニングします。

    Note

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

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

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

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

結果

トレーニングの完了後:

  • 新しいデータについての予測を行うために、トレーニング済みのモデルと新しいデータをモデルのスコア付けコンポーネントの入力として使用します。

次の手順

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