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

冗長な特徴量の判断について

ST
イメージセンサー

冗長な特徴量の判断について

お世話になっております。

 

表題の件、基本的なモデル作成の方針は、冗長な特徴量が発生しなくなるまで

特徴量を削除していく、と考えて良いでしょうか。

 

データ点数が数100行で、特徴量数が初期段階で40列ほどある

スモールデータで、回帰問題を扱っています。

冗長な特徴量が現れては消す、という作成をしていたところ、

以下のように遷移しました。

モデル1(冗長あり)→冗長削除→モデル2(冗長あり)→冗長削除→モデル3(冗長なし)

特徴量数は最終的に25列まで減りました。

 

それぞれのモデルの残差の決定係数から精度を確認しましたが、交差検定では0.09(モデル1)→0.2(モデル2)→0.01(モデル3)と浮き沈みがあり、ホールドアウトも0.4→0.3→0.2と下がっていました。

 

今回データ点数が少ないので、冗長な特徴量は積極的に外すことで

精度向上を考えていましたが、逆に精度が悪くなる傾向がでました。

こちらは元のデータが少なすぎるため、冗長削除が効果的ではなかったり

本来削除されると良くなかった特徴量があった、と考えるのが妥当でしょうか?

 

ケースバイケースということは承知していますが、

冗長な特徴量に対する判断方法と、考察方法についてご教示いただけますと幸いです。

2件の返信2
mitsuo
データサイエンティスト
データサイエンティスト

 まず、冗長な特徴量の削減方針については、そのモデルの作成目的が
(1) 要因分析用途のモデル構築
(2) 一般的な予測用途のモデル構築
かによって異なります。

 特に、モデルを利用して要因分析を行う際においては、[1]のページでも述べていますが、その特徴量(要因)に対して人が主体的に介在できるかどうかによって、削減の可否が決定されます。

 一方で、仮にモデルの構築の目的が(2)の場合、特徴量の削減は以下の目的をもって実施されるケースが多いかと思います[2]

  • 特徴量の中に含まれるノイズを除去し精度を向上させる
  • 過学習を防ぐ
  • 解釈性を増す
  • 学習時間を減らす

 ただし、ここで注意すべきポイントとしては、DataRobotが採用する"冗長な特徴量"の削減アルゴリズムは、必ずしも精度向上につながるわけではない点です。理由としましては、同削減アルゴリズムは、[3]にもありますように、特徴量間の相関が高く、なおかつ特徴量のインパクトが低いと認識されたものを特徴量の削減候補として選定しますが、削減される特徴量の中には、必ずしも全く有用な情報が含まれていないということではないからです。

 なお、DataRobotの特徴量の削減アルゴリズムや利用上の注意点に関しては、以下に有用なドキュメントがありますので、ぜひご参照ください。

[1] 機械学習を用いた要因分析 – 理論編 Part 1
https://www.datarobot.com/jp/blog/causality_analysis_machine_learning/

[2] 特徴量の選択
https://www.datarobot.com/jp/wiki/feature-selection/

[3] 冗長な特徴量の除外
https://app.datarobot.com/docs-jp/modeling/investigate/understand/feature-impact.html?highlight=#red...

以上です。

ST
イメージセンサー

ご回答ありがとうございます。

 

今回のモデル作成では、目的(2)に重きを置いていました。

相関が高いから、冗長な特徴量は優先して削除しなくてはと思いこんでいました。。

削除後の新しいデータセット由来のモデルがデプロイ推奨モデルにならなかったケースもあり、

ご回答の必ずしも精度向上につながるわけではない、という点と照らし合わせると

なるほどと思いました。

 

参考資料も、勉強不足なのでありがたいです。

もう一度特徴量の中身をよく確認しながら作成してみます。

0 件の賞賛