ポワソン回帰
この記事では Azure Machine Learning デザイナーのコンポーネントについて説明します。
このコンポーネントを使用して、パイプラインでポワソン回帰モデルを作成します。 ポワソン回帰の目的は、数値 (通常はカウント) を予測することです。 したがって、予測を試みている値が次の条件を満たす場合にのみ、このコンポーネントを使用して回帰モデルを作成する必要があります。
応答変数がポワソン分布を持つ。
カウントが負の値になる可能性がない。 負の値のラベルと共に使用すると、このメソッドは失敗します。
ポワソン分布が離散型分布であるため、このメソッドを非整数と使用することが重要でない。
ヒント
ターゲットがカウントでない場合、ポワソン回帰が適切なメソッドではない可能性が高くなります。 デザイナーでその他の回帰コンポーネントを試してください。
回帰メソッドを設定したら、予測する値のサンプルを含むデータセットを使用して、モデルをトレーニングする必要があります。 その後、トレーニング済みのモデルは、予測に使用できます。
ポワソン回帰の詳細
ポワソン回帰とは特殊な種類の回帰分析で、一般的にはカウントをモデル化するのに使用されます。 たとえば、ポワソン回帰は次のシナリオに役立ちます。
飛行機のフライトに関連付けられたコールド数をモデル化する
イベント発生時の緊急時サービスの呼び出し数を見積もる
プロモーション後の顧客の問い合わせ数を予測する
分割表を作成する
応答変数にはポワソン分布があるため、このモデルでは、データとその確率分布に関する前提が最小二乗回帰などとは異なります。 そのため、ポワソンモデルは、その他の回帰モデルとは異なる方法で解釈される必要があります。
ポワソン回帰を構成する方法
デザイナーでパイプラインにポワソン回帰コンポーネントを追加します。 このコンポーネントは、 [Machine Learning アルゴリズム] の [回帰] カテゴリにあります。
適切な種類のトレーニング データが含まれるデータセットを追加します。
[データの正規化] を使用して入力データセットを正規化してから、それを使用してリグレッサーのトレーニングを行うことをお勧めします。
[ポワソン回帰] コンポーネントの右ペインで、 [トレーナー モードの作成] オプションを設定してモデルをトレーニングする方法を指定します。
Single Parameter (単一パラメーター) : モデルの構成方法を決めている場合は、特定の値のセットを引数として渡します。
[Parameter Range]\(パラメーター範囲\) : 最適なパラメーターがわからない場合は、[モデルのハイパーパラメーターの調整] コンポーネントを使用してパラメーターのスイープを行います。 トレーナーは、指定された複数の値で繰り返し最適な構成を見つけます。
最適化の公差:最適化中に、公差の間隔を定義する値を入力します。 値が低いほど、学習の速度は遅くなりその正確度は高くなります。
[L1 正則化の重み] と [L2 正則化の重み] :L1 と L2 の正則化に使用する値を入力します。 [正則化] では、トレーニング データに依存しない、こうしたモデルの側面に関するアルゴリズムに制約が追加されます。 正則化は通常、オーバーフィットを回避するときにも使用されます。
L1 正則化は、可能な限りスパースなモデルを使用することが目標である場合に有用です。
L1 正則化を行うには、学習器が最小化しようとしている損失式から重みベクトルの L1 の重みを差し引きます。 L1 ノルムは、L0 ノルムに適切に近似しています (0 以外の座標数)。
L2 正則化は、重みベクトル内の任意の単一座標の絶対値が大きくなり過ぎるのを防止します。 L2 正則化は、全体的な重みが小さいモデルを使用することが目標である場合に有用です。
このコンポーネントでは、L1 正則化と L2 正則化の組み合わせを適用できます。 L1 と L2 の正則化を組み合わせることにより、パラメーター値の絶対値にペナルティを適用することができます。 学習器は、損失の最小化とのトレードオフにおいて、ペナルティを最小限に抑えようとします。
L1 および L2 の正則化の詳細については、「機械学習向けの L1 および L2 正規化」を参照してください。
L-BFGS のメモリ サイズ:モデルの調整と最適化のために予約するメモリの量を指定します。
L-BFGS は、BFGS (Broyden–Fletcher–Goldfarb–Shanno) アルゴリズムに基づいて最適化するための特定のメソッドです。 このメソッドでは、制限されたメモリ量 (L) を使用して次のステップ指示が計算されます。
このパラメーターを変更すると、次のステップを計算するために保存されている過去の位置と勾配の数を調整できます。
トレーニング データセットと未トレーニング モデルをトレーニング コンポーネントのいずれかに接続します。
[Create trainer mode]\(トレーナー モードの作成\) を [Single Parameter]\(単一パラメーター\) に設定した場合は、モデルのトレーニング コンポーネントを使用します。
[トレーナー モードの作成] を [Parameter Range]\(パラメーター範囲\) に設定した場合は、モデルのハイパーパラメーターの調整コンポーネントを使用します。
警告
パラメーター範囲を [モデルのトレーニング] に渡すと、パラメーター範囲リストの 1 番目の値のみが使用されます。
モデルのハイパーパラメーターの調整コンポーネントで各パラメーターにさまざまな設定が必要なときに、1 つのパラメーター値のセットを渡すと、それらの値は無視され、学習器の既定値が使用されます。
[Parameter Range]\(パラメーター範囲\) オプションを選択し、任意のパラメーターに単一の値を入力した場合、指定した単一の値はスイープ全体で使用されます。これは、他のパラメーターが値の範囲の中で変化する場合でも同様です。
パイプラインを送信します。
結果
トレーニングの完了後:
- トレーニング済みモデルのスナップショットを保存するには、トレーニング コンポーネントを選択し、右側のパネルの [出力とログ] タブに切り替えます。 [データセットの登録] アイコンをクリックします。 保存されたモデルは、コンポーネント ツリーにコンポーネントとして示されます。
次の手順
Azure Machine Learning で使用できる一連のコンポーネントを参照してください。