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

重み付け機能に関する質問

yo-hei
青色LED

重み付け機能に関する質問

https://docs.datarobot.com/ja/docs/modeling/build-models/adv-opt/additional.html
についての「追加の重み付けの詳細」について仕様の認識齟齬がないか、

ありそうであれば、コメント頂きたいです。

・ウェイト
 数値特徴量に対して設定をできますが、この挙動のイメージは該当の特徴量の値が大きければ大きいほど、該当のレコードの誤差を小さくなる(正解しやすいように)ように学習するという認識で正しいでしょうか。

 

・イベント数
 イベント(例えば、祝日、キャンペーン)の場合は1、それ以外の非は0のようなケースの0,1の値に対して、イベントレコードの誤差を小さくするような学習をする認識でよろしいでしょうか。

 

・エクスポージャー、オフセット
 機械学習をする際に、目的変数に比例して影響受ける特徴量をエクスポージャーとして明示的にビジネスルートとして指定する事により、精度を向上する目的で利用する。
 エクスポージャーと同様の性質で、指数的に目的変数に影響を与えるものをオフセットとして指定できる認識でよろしいでしょうか。

0 件の賞賛
1件の返信1
Shogo Nagano
データサイエンティスト
データサイエンティスト

@yo-hei さん

 

ご質問いただきありがとうございます!

ウェイト、イベント数、オフセット、エクスポージャーに関して補足させていただきます。

 

ウェイト

ご認識いただいているイメージの通り、ウェイトは指標の計算に対する重み付けを変える方法です。単純に、全体のウェイトの中で相対的に大きな値が付いているウェイトをその値に比例して重要視する操作となります(複数回そのデータが出現するように扱うイメージです)。詳細はこちらのブログの「加重指標の場合」、および、こちらのディスカッションをご参照ください。

 

イベント数

こちらは値が0、1の二値分類ではなく、ゼロブースト問題(ターゲットにゼロが大量にある場合の回帰問題)に対処するための手法です。ターゲットが0以外の値を示す場合の発生頻度に関する情報を特徴量として追加することでモデルの精度改善を目指します。

次に、イベント数の設定によって作られるモデル(頻度-強度モデル)の説明をさせていただきます。こちらのモデルは2つのステージでモデリングされます。最初のステージでは以下の2つのモデルが学習されます。
1) 頻度モデル:「イベント数」をターゲットとして学習させます。

2) 強度モデル:オリジナルのターゲットが非ゼロの場合のみを用いて「オリジナルのターゲット」/「イベント数」をターゲットとして学習させます。2ステージ目では、上記1)と2)のモデルの積を計算し、最終的な予測値としています。

頻度-強度モデルの仕組みからも分かる通り、先ほどのウェイトとは違い、値の大小関係がレコードごとの重要度を表す訳ではありません。ゼロブースト問題における非ゼロの発生度を反映したモデリングが可能となる、とイメージしていただければ幸いです。

 

エクスポージャー、オフセット

オフセット項は、目的変数と自明な関係を持つ場合に明示的に指定することで、例えば以下のユースケースでお使いいただくことができます。

  • 自明の関係性をモデルに組み込む
  • 学習データに存在しない特定の入力に対しての予測値を制御する
  • 一定レベルの構造知識がある場合に、その構造をモデルに残す

そのため、オフセット項の用途は目的変数と特徴量が比例している場合に限定されません。また、オフセット項は手元のデータにおける精度を必然的に上げる手法ではありません。精度向上ではなく、モデルに対してドメイン知識を反映させる手法であると考えていただければ幸いです。

エクスポージャーは用途が限定されている便利なオフセット項だと考えていただければ幸いです(オフセット項をターゲットに対して比例関係で利用したい場合、オフセット項を使うと自然対数を計算する必要がありますが、エクスポージャーで0.25を入れると予測値が0.25倍、2.0を入れると2倍と直感的に利用することが可できます。)。

オフセット、エクスポージャーに関する詳細はこちらのブログをご参照ください。

 

その他、追加で疑問点等ございましたらお気軽にご質問ください。

0 件の賞賛