予測モデリングの正則化と増強

Tableau を使用する多くのユーザーは、予測モデルを使用していないかもしれず、ましてや予測モデルの適合性や予測品質を向上させる方法を探してはいないかもしれません。この記事は、データ サイエンスのこの分野に関心がある上級ユーザー向けです。

予測を微調整するために、ターゲット式 (予測するメジャー) や予測変数の式 (予測に使用するメジャーやディメンション) などの既定の引数に加えて、2 つの引数ラムダ、 (正則化率) と増強を追加できます。そのためには、計算の構文に新しい引数を追加する必要があります。

正則化と増強で動作するモデル

Tableau の予測モデリング関数では、線形回帰 (最小二乗回帰または OLS とも呼ばれます)、正則化線形回帰 (またはリッジ回帰)、およびガウス プロセス回帰の 3 つのモデルをサポートしています。線形回帰またはリッジ回帰を使用している場合、モデルが非線形パターンを取り出す能力を増強によって高めることができます。リッジ回帰を使用している場合、正則化率は、モデルの正則化効果を調整するためのスカラーとして使用できます。

正則化と増強は ガウス プロセス回帰には適用されません。

正則化と増強について説明する前に、これらの 2 つのモデルを確認します。

線形回帰は、予測と予測ターゲットの間に線形関係を持つ予測変数が 1 つまたは複数ある場合に使用するのが最適です。これらの予測変数は、同じ条件の影響を受けず、同じデータを表す 2 つのインスタンス (たとえば、ドルとユーロの両方で表す売上高) ではないことが必要です。

正則化された線形回帰は、安定性の向上、共線性の影響の軽減、計算効率と汎化性能の向上に使用されます。Tableau では、L2 正則化が使用されます。L2 正則化の詳細については、リッジ回帰に関するレッスンを参照してください。

正則化とは

リッジ回帰は、正則化された線形回帰の一種です。正則化では、モデルの係数の大きさにペナルティを課します。正則化の強さは、正則化の全体的な影響を微調整するために使用するスカラーであるラムダによって制御します。値が高いほど、ペナルティが重くなります (すなわち、正則化が拡大します)。

リッジ回帰は、次のような線形回帰の問題に対処したものです。

  • 予測変数間の多重共線性によってもたらされた異常を除去する。

  • データ ポイントの数が特徴の数より少ない場合など、最小二乗問題の条件が悪い場合、ラムダが一意の解を選択する。

  • 線形モデルの一般化を改善する方法を提供する。

Tableau のリッジ回帰のデフォルト値は ラムダ = 0.5 です。これは、この値が適切に機能する場合が多いためです。ラムダ値を変更するには、テーブル計算を編集します (以下の例を参照)。

増強とは

MODEL_QUANTILE と MODEL_PERCENTILE の増強は、データ増強の簡単な例です。予測変数がより高次の多項式に拡張されます。Tableau では、予測モデリング関数に多項式増強が組み込まれており、そのタイプは 2 つあります。

  • 順序付けられたディメンションの場合、3 次までのルジャンドル多項式により、増強された予測変数と応答の間の 2 次と 3 次の関係を線形モデルで捉えることができます。

  • メジャーの場合、2 次のエルミート多項式により、増強された予測変数と応答の 2 次の関係を線形モデルで捉えることができます。

線形回帰では、順序付けられたディメンションのみがデフォルトで増強されます (augmentation=on)。リッジ回帰 (model=rl) では、メジャーのみがデフォルトで増強されます。計算での各予測変数の増強を無効にするには、augmentation=off に変更します。 設定は上書きされ、高次の多項式は追加されません。

データセットが非常に小さい場合、増強をオフにすると有利です。増強すると元のデータに存在するノイズに過剰に適合する可能性があることや、結果として得られる関係がより単純で直感的であるためです。

注: 増強の設定は、予測変数ごとに (つまり、計算の予測変数の引数内で) オンとオフを切り換えることができます。ラムダ (およびモデル) は、より上位のレベルで (予測変数の式の外で) 適用されます。

計算でラムダと増強を設定する

正則化率 (ラムダ) とデータ増強について理解したので、次は予測計算のコンテキストでそれらを確認します。

MODEL_QUANTILE("model=rl, lambda=0.05", 0.5, SUM([Profit]), "augmentation=off", SUM([Sales]))

次の表は、増強とラムダをデフォルトから変更した場合、線形モデルに与える影響について要約したものです。

 増強ラムダ
リッジ回帰ありあり
線形回帰あり該当なし

正則化と増強に関する考慮事項

  • データのモデルが間違っていると、正則化率または増強を変更しても、結果が大幅に改善される可能性はあまりありません。データ型が正しいかどうか、ディメンションに対するメジャーを確認することを検討します。たとえば、参照元データが時系列である場合は、テーブル計算のモデルを model=gp で変更して、ガウス プロセス回帰 を使用することを検討します。

  • OLS は正則化されないため、変更できるラムダ値はありません。

  • データ セットが非常に小さく、ディメンション (特にカーディナリティの高いディメンション) がある場合は、テーブル計算に model=rl を追加して、リッジ回帰を使用することを検討します。

  • すべてが等しい場合 (増強がオンかオフのいずれであっても、同じデータセットの場合)、ラムダを小さくすると、適合性は向上しても、一般化を損ない過剰に適合する原因となる可能性があります。

  • 逆に、ラムダを大きくすると、どの予測変数にも依存しない、定数モデルへの適合を促す可能性があります。その場合、モデルの能力が下がり、適合不足の原因となります。

例 1

この例は、男性と女性の平均コレステロールと心臓病の関係を示しています。男性は四角いマークで表され、女性は円で表されています。

最初のビジュアライゼーションでは、青いマークは予測ターゲットを示し、オレンジ色のマークはモデル化された値です。データに非常にノイズが多く、増強をオンにしてラムダ値を 0.01 と小さくすると、非現実的なことに心臓病の発生率が 1 を超えます。データにノイズが多く、おそらくすべての外れ値が原因で、依存関係が非常に急になっています。

予測ターゲットと適合性の低いモデルを使用した性別による心臓病

MODEL_QUANTILE("model=rl, lambda=0.01", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=on", AVG([Chol]))

次のビジュアライゼーションでは、増強をオフにしてラムダ値を 10 にし、予測ターゲットを別のモデルと比較します。このモデルの方が現実的であり、心臓病の発生率が 1 を超えるマークはありません。

予測ターゲットと適合性の高いモデルを使用した性別による心臓病

MODEL_QUANTILE("model=rl, lambda=10", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=off", AVG([Chol]))

例 2

次に、別の実際の例を見てみます。これは、ボストンの Bluebikes (旧Hubway) という自転車シェア システムの利用者数のデータです。この場合、線形回帰がうまく機能します。2017 年の各四半期で集計された、次のビジュアライゼーションを比較します。

過剰適合のない Hubway 利用者データのプロット

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Trip.Duration]), AVG([Temp]))

過剰適合のない Hubway 利用者データのプロット

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, AVG([Speed]), AVG([Temp]))

どちらも過剰に適合する傾向はなく、ラムダが小さいのでラムダへの依存度は弱くなります。

次に、最後のビジュアライゼーションを確認します。

過剰適合のない Hubway 利用者データのプロット

MODEL_QUANTILE('model=rl, lambda=2', 0.5, sum([Trip.Duration]), AVG([Temp]))

Lambda を大きくすると、近似は平坦になり、勾配がなくなります。つまり、過剰に正則化されるか、「適合不足」になります。

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!