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

「交互作用を検索」のアルゴリズム

yterada
青色LED

「交互作用を検索」のアルゴリズム

高度なオプションの「その他」内から設定できる「交互作用を検索」を有効化しているとモデリング開始前に交互作用が検索されますが、この機能はどのようなアルゴリズムで交互作用を見つけていますでしょうか? また、実データで 'A minus B' といった特徴が作成されるのを見たことはあるのですが、引き算以外にどのような演算がサポートされていますか? 二項演算に限らず三項以上の組み合わせ( (A-B)/C など )も探索されるのでしょうか?
5件の返信5
HajimeO
データロボット従業員
データロボット従業員

演算内容に応じて異なりますが、例えば引き算(差分)の場合であれば、2数値特徴量間の相関係数が一定以上かどうか、正の相関かどうか、引き算した後の特徴量が既存の特徴量と相関していないか、などをもとに判断します。数値特徴量がたくさんあったり、行数が多かったりすると、計算量を減らすためのロジックも追加されます。

現在は数値の差分、割合、日付の差分、テキストの類似度、が検討対象となっています。

三項以上の組み合わせは現在のところ行っていません。

ご回答ありがとうございます。 イメージが付きました。相関係数のような計算量が軽い指標を採用基準にしつつ、ある程度総当り的に(ときに枝刈りもしつつ)探索しているのですね。 「生成された特徴量のうち目的変数との相関が強いものを選ぶ」というようなロジックを想像していたのですが、そういったものは見ていないのでしょうか? そうではなく、目的変数を見るというよりはバラエティに富んだ特徴量を多く用意するというアプローチなのでしょうか。
0 件の賞賛
HajimeO
データロボット従業員
データロボット従業員

ターゲットとの相関も見ておりまして、絞り込みに使っていますね。

0 件の賞賛

ターゲット値も参考にしているんですね。理解できました。ありがとうございます。

0 件の賞賛
Kei
データサイエンティスト
データサイエンティスト

交互作用について別途ご質問をいただいたので、こちらでも補足的に共有させていただきます!

① Generalized Additive2 Model内での交互作用探索
Generalized Additive2 Model内では、数値特徴量はBinningといって、いくつかのカテゴリに分けた後に、そのカテゴリの組み合わせで交互作用を確認しております。そうすることで、数値特徴量とカテゴリ特徴量のカテゴリ特徴量の交互作用も確認できるようになっております。数値同士の四則演算をしているわけではないので、引き算や掛け算のマークではなく & となっております。
② 設定>その他>交互作用探索
Generalized Additive2 Modelに関係なく、予測に有効そうな交互作用を事前に探索して、有効そうな派生特徴量を特徴量セットに追加するアプローチです。
演算内容に応じて異なりますが、例えば引き算(差分)の場合であれば、2数値特徴量間の相関係数が一定以上かどうか、正の相関かどうか、引き算した後の特徴量が既存の特徴量と相関していないか、などをもとに判断します。数値特徴量がたくさんあったり、行数が多かったりすると、計算量を減らすためのロジック(GLMでモデルを作成してみる)も追加されます。
現在は数値の差分、割合、日付の差分、テキストの類似度、が検討対象となっています。
引き算かどうかが明確なので、MINUSという表記がついております。

どの方法がいいというのは、やってみないとわからないのですが、②については交互作用をGeneraized Additive2 Model以外でも確認できる点ではGeneralized Additive2 Modelでは出てこなかった傾向が見える可能性はあります。複数のモデルの特徴量のインパクトで上位に出てくる交互作用項はもしかすると、いいヒントになるかもしれません。

ただ、②については掛け算をサポートしていない点にご注意いただければと思います。②については、どちらかというとモデルの精度をあげるための派生特徴量探索で、①や③については現象としての交互作用を捉えるためのものというイメージで私は捉えております。