ポワソン回帰

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

データがポワソン分布を持つことを前提とする回帰モデルを作成します

Category: Machine Learning/初期化モデル/回帰

注意

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

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

モジュールの概要

この記事では Machine Learning Studio (クラシック) でポワソン回帰モジュールを使用して、ポワソン回帰モデルを作成する方法について説明します。

ポワソン回帰は、数値 (通常はカウント) を予測するために使用される回帰モデルで使用することを目的としています。 したがって、予測を試みている値が次の条件を満たす場合にのみ、このモジュールを使用して回帰モデルを作成する必要があります。

  • 応答変数がポワソン分布を持つ。

  • カウントが負の値になる可能性がない。 負の値のラベルと共に使用すると、このメソッドは失敗します。

  • ポワソン分布が離散型分布であるため、このメソッドを非整数と使用することが重要でない。

ヒント

ターゲットがカウントでない場合、ポワソン回帰が適切なメソッドではない可能性が高くなります。 このカテゴリに含まれる他のモジュールのいずれかを試してみてください。 回帰メソッドを選択する方法については、 Machine Learning アルゴリズムのカンニングペーパーを参照してください。

回帰メソッドを設定したら、予測する値のサンプルを含むデータセットを使用して、モデルをトレーニングする必要があります。 その後、トレーニング済みのモデルは、予測に使用できます。

ポワソン回帰の詳細

ポワソン回帰とは特殊な種類の回帰分析で、一般的にはカウントをモデル化するのに使用されます。 たとえば、ポワソン回帰は次のシナリオに役立ちます。

  • 飛行機のフライトに関連付けられたコールド数をモデル化する

  • イベント発生時の緊急時サービスの呼び出し数を見積もる

  • プロモーション後の顧客の問い合わせ数を予測する

  • 分割表を作成する

応答変数にはポワソン分布があるため、このモデルでは、データとその確率分布に関する前提が最小二乗回帰などとは異なります。 そのため、ポワソンモデルは、その他の回帰モデルとは異なる方法で解釈される必要があります。

ポワソン回帰を構成する方法

  1. 実験に ポワソン回帰 モジュールを Studio (クラシック) で追加します。

    このモジュールは、回帰カテゴリの [ Machine Learning-初期化] の下にあります。

  2. 適切な種類のトレーニング データが含まれるデータセットを追加します。

    [データの正規化] を使用して入力データセットを正規化してから、それを使用してリグレッサーのトレーニングを行うことをお勧めします。

  3. ポワソン回帰モジュールのプロパティペインで、[トレーナーモードの作成] オプションを設定して、モデルのトレーニング方法を指定します。

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

    • パラメーターの範囲。 最適なパラメーターがわからない場合は、 モデルハイパーパラメーターの調整 モジュールを使用してパラメータースイープを実行します。 トレーナーは、指定された複数の値で繰り返し最適な構成を見つけます。

  4. 最適化の公差:最適化中に、公差の間隔を定義する値を入力します。 値が低いほど、学習の速度は遅くなりその正確度は高くなります。

  5. [L1 正則化の重み] と [L2 正則化の重み] :L1 と L2 の正則化に使用する値を入力します。 [正則化] では、トレーニング データに依存しない、こうしたモデルの側面に関するアルゴリズムに制約が追加されます。 正則化は通常、オーバーフィットを回避するときにも使用されます。

    • L1 正則化は、可能な限りスパースなモデルを使用することが目標である場合に有用です。

      L1 正則化を行うには、学習器が最小化しようとしている損失式から重みベクトルの L1 の重みを差し引きます。 L1 ノルムは、L0 ノルムに適切に近似しています (0 以外の座標数)。

    • L2 正則化は、重みベクトル内の任意の単一座標の絶対値が大きくなり過ぎるのを防止します。 L2 正則化は、全体的な重みが小さいモデルを使用することが目標である場合に有用です。

    このモジュールでは、L1 正則化と L2 正則化の組み合わせを適用できます。 L1 と L2 の正則化を組み合わせることにより、パラメーター値の絶対値にペナルティを適用することができます。 学習器は、損失の最小化とのトレードオフにおいて、ペナルティを最小限に抑えようとします。

    L1 および L2 の正則化の詳細については、「機械学習向けの L1 および L2 正規化」を参照してください。

  6. L-BFGS のメモリ サイズ:モデルの調整と最適化のために予約するメモリの量を指定します。

    L-BFGS は、BFGS (Broyden–Fletcher–Goldfarb–Shanno) アルゴリズムに基づいて最適化するための特定のメソッドです。 このメソッドでは、制限されたメモリ量 (L) を使用して次のステップ指示が計算されます。

    このパラメーターを変更すると、次のステップを計算するために保存されている過去の位置と勾配の数を調整できます。

  7. トレーニング データセットと未トレーニング モデルをトレーニング モジュールのいずれかに接続します。

    警告

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

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

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

  8. 実験を実行してモデルをトレーニングします。

例

機械学習でポワソン回帰を使用する方法の例については、 Azure AI Galleryを参照してください。

テクニカル ノート

ポワソン回帰は、ラベルにポワソン分布があると仮定して、カウントデータをモデル化するために使用されます。 たとえば、特定の日にカスタマーサポートセンターへの呼び出し回数を予測するために使用できます。

このアルゴリズムでは、不明な関数 (Y) にポワソン分布があることを前提としています。 ポワソン分布は次のように定義されています。

インスタンス x = (x0,..., xd-1) では、k = 0, 1,... ごとに、インスタンスの値が k である確率がモジュールによって計算されます。

トレーニング例のセットを考えると、パラメーターのログの確率を最大化することによって、アルゴリズムはθ0,..., θD-1 の最適な値を見つけようとします。 パラメーターθ0,..., θD-1 は、これらのパラメーターを使用して分布からトレーニングデータがサンプリングされた確率です。

ログの確率は、logp(y = yi) として表示できます。

予測関数は、パラメーター化されたポワソン分布の予期される値を出力します。具体的には fw、b (x) = e [Y | x] = ewTx + bです。

詳細については、Wikipedia の ポワソン回帰 のエントリを参照してください。

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

名前 Range Type Default 説明
最適化の公差 >=double.Epsilon Float 0.0000001 最適化の収束のための許容値を指定します。 値が低いほど、学習の速度は遅くなりその正確度は高くなります。
L1 正則化の重み >= 0.0 Float 1.0 L1 正則化の重みを指定します。 0 以外の値を使用すると、モデルのオーバーフィットを回避できます。
L2 正則化 weight >= 0.0 Float 1.0 L2 正則化 weight を指定します。 0 以外の値を使用すると、モデルのオーバーフィットを回避できます。
L-BFGS のメモリ サイズ >=1 Integer 20 L-BFGS オプティマイザーに使用するメモリ量 (単位は MB) を示します。 メモリを少なくすると、トレーニングはより速く行われますがトレーニングの正確度はより低くなります。
乱数シード any Integer モデルで使用する乱数ジェネレーターのシード値を入力します。 既定の場合は空白のままにします。
不明なカテゴリ レベルの許可 any Boolean true 各カテゴリ列の追加レベルを作成するかどうかを示します。 トレーニング データセットでは使用できないテスト データセットのレベルはすべて、この追加のレベルにマップされます。

出力

名前 型 説明
未トレーニング モデル ILearner インターフェイス 未トレーニング回帰モデル

こちらもご覧ください

Regression (回帰)
モジュールの一覧 (アルファベット順)