キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
DataRobot コミュニティ

連続値予測に関する「係数」の使い方

1040727
リニアアクチュエータ

連続値予測に関する「係数」の使い方

件名について、製品マニュアルの以下のページを見て理解しようとしたのですが、すみません、理解が追い付きませんでした・・

実際、この係数にもとづいてExcel上の計算式を落とし込むということは可能でしょうか・・・?

 

(以下、私が確認していた製品マニュアル抜粋)

係数/前処理出力からの抜粋を以下に示します。

1 Intercept: 5.13039673557
2 Loss distribution: Tweedie Deviance
3 Link function: log
4
5 Feature Name Type Derived Feature          Transform1  Value1   Transform2                     Value2  Coefficient
6           a  NUM  STANDARDIZED_a  Missing imputation 59.5000  Standardize  (56.078125,31.3878483092)       0.3347
7           b  NUM  STANDARDIZED_b  Missing imputation 24.0000  Standardize   (24.71875,15.9133088463)       0.2421

この例では、切片損失分布およびリンク関数パラメーターは、特定の特徴量ではなくモデル全般を記述します。表内の各行は、1つの特徴量と、DataRobotがそれに対して適用する変換を記述します。例えば、以下のようにサンプルを読むことができます。

  1. 「a」(行#6)という名前の付いた特徴を取り、欠損している値を59.5という数字に置き換えます。
  2. 標準化された変換数式の—平均(56.078125)および標準偏差(31.3878483092)を値に適用します。
  3. 結果(派生した特徴量)を「STANDARDIZE_a」という列に書き込みます。
  4. 特徴量「b」に対しても同様の手順を行います。

    このモデルから生成された予測は、以下の公式で計算されます。 ここで、inverse_link_functionは指数関数(対数の逆数)です。標準化された_aおよび_bは、それぞれの係数(モデル出力)で乗算された後、切片値に加算されます。

    resulting prediction = inverse_link_function( (STANDARDIZE_a * 0.3347) + (STANDARDIZE_b * 0.2421) + 5.13)
4件の返信4
nagano
青色LED

Q. DataRobotからエクスポートした係数を用いてExcelで連続値予測を再現することはできるか
A. 可能です
 
ご記載いただいたこちらの例を用いて具体的な手順をお伝えできればと思います。
1 Intercept: 5.13039673557
2 Loss distribution: Tweedie Deviance
3 Link function: log
4
5 Feature Name Type Derived Feature          Transform1  Value1   Transform2                     Value2  Coefficient
6           a  NUM  STANDARDIZED_a  Missing imputation 59.5000  Standardize  (56.078125,31.3878483092)       0.3347
7           b  NUM  STANDARDIZED_b  Missing imputation 24.0000  Standardize   (24.71875,15.9133088463)       0.2421
こちらのモデルは特徴量(a, b)を用いてターゲットを予測するものになりますが、特徴量をそのまま用いるのではなく学習に最適な変換を行った派生特徴量(STANDARDIZED_a, STANDARDIZED_b)を用いて予測します。ですので Excel で予測モデルを再現するにはまず派生特徴量を自作する必要があります。
 
STANDARDIZED_a の作成方法 (STANDARDIZED_b も同様の手順)
1. Transform1 に Missing imputation(欠損値補完)、Value1 に 59.5 と書いてあるので、特徴量 a の列の欠損を 59.5 で埋めます
2. Transform2 に Standardize(標準化)、Value2 に (56.078125,31.3878483092) と書いてあるので、先ほど欠損を埋めた列全体を平均値 56.078125、標準偏差 31.3878483092で標準化します
drc.png今回は標準化を行いましたが、派生特徴量は特徴量の型によって作成方法が異なるためこちらをご参照いただければとおもいます。
 
各派生特徴量の係数は Coefficient、y 切片は Intercept、リンク関数は Link function ですので派生特徴量を作成すれば予測値が算出できます。具体的な予測値の計算式は以下のようになっております。
drc_eq.png

上の式を Excel に入れることで DataRobot の予測モデルを再現することができます。

NaoyukiMasuda
青色LED

モデルを計算式に落とし込む用途だと、相互作用を含む一般化加法モデル(Generalized Additive 2 Model (GA2M))の「格付表」を利用するのも良いと思います。このモデルは、DataRobotの元kaggle1位の方によるオリジナルチューンのモデルで、ご質問の係数を用いるよりも一般に精度が良いです。また、場合によっては2つの特徴量間の相互作用が検出されることもあります。ぜひぜひ試してみてください。

 

格付表の出力手順と、表の見方は以下のブログがおすすめです。

https://www.datarobot.com/jp/blog/2017-10-24-ga2m-and-rating-table/

 

また、格付表の係数をビジネス上の要件に合わせて編集し、新たにモデルを生成することも可能です。

https://www.datarobot.com/jp/blog/2017-12-14-modify_rating_table/

1040727
リニアアクチュエータ

@nagano @NaoyukiMasuda 質問したきりで反応もせず大変失礼いたしました!わかりやすいご説明ありがとうございました!まだ業務利用という訳ではないのですが、試しに連続値問題に触れることがあったので、後学のためにお聞きしたものでした。引続きよろしくお願いいたします!

ManaM
データロボット同窓生

参考になった返信には、「解決策として承認する」をお願いします!