特徴量の重要度はモデルの予測精度が低い場合でも信用してよいのか?

シェアする

分子設計・材料設計・プロセス設計において、分子記述子や合成条件・製造条件やプロセス条件などの説明変数 x と材料の物性・活性・特性などの目的変数 y との間で数理モデル y = f(x) を構築して、そのモデルを用いて x の値から y の値を予測したり、y の値が所望の値になる x の値を設計したりします。

特に x と y の間の関係性を解明したいとき、特徴量の重要度を計算することがあります。例えば決定木に基づくアンサンブル学習を使用した手法であるランダムフォレスト、Adaboost、勾配ブースティング、XGBoost、LightGBM などでは、特徴量の重要度を計算できる機能が手法内にあり、モデルを構築するときに特徴量の重要度を計算できます。

ランダムフォレスト(Random Forests, RF)~アンサンブル学習で決定木の推定性能を向上!~
ランダムフォレスト(Random Forest, RF)について、pdfとパワーポイントの資料を作成しました。データセットが与えられたときに...
Adaboost (Adaptive Boosting) によるアンサンブル学習のやり方を解説します
今回は、アンサンブル学習の方法の一つである Adaboost (Adaptive Boostling) です。アンサンブル学習についてはこち...
[デモのプログラムあり] 勾配ブースティングGradient Boosting、特に Gradient Boosting Decision Tree (GBDT), XGBoost, LightGBM
勾配ブースティングGradient Boosting、特に Gradient Boosting Decision Tree (GBDT), ...

モデルの予測精度を評価するときに、トレーニングデータでモデルを構築してテストデータの y を予測してみて、テストデータの y をどれくらい予測できたか評価したり、ダブルクロスバリデーションでモデルの予測精度を評価したりします。

回帰モデル・クラス分類モデルを評価・比較するためのモデルの検証 (Model validation)
いろいろな回帰モデル・クラス分類モデルを構築したり、モデルの中のハイパーパラメータ (PLSの成分数など) を決めたりするとき、モデルを評価...
ダブルクロスバリデーション(モデルクロスバリデーション)でテストデータいらず~サンプルが少ないときのモデル検証~
回帰モデルやクラス分類モデルを検証するときの話です。 モデルの検証 一般的には、データセットが与えられたとき、サンプルをモデル構築用サン...

特徴量の重要度は、モデルの予測精度によらず計算できますが、モデルの予測精度が低いとき、例えばテストデータの y の予測誤差が大きかったり、ダブルクロスバリデーション後の y の予測値と y の実測値とが全然合わなかったりしたときに、(トレーニングデータの y の計算値と y の実測値が非常によく合っているとはいえ) 特徴量の重要度を信用してよいのでしょうか?

結論としては、そのようなモデルの予測精度が低いときに特徴量の重要度を信用してはいけません。

この理由を理解するためには、実際に追加のデータ解析をするのがよいでしょう。そのデータ解析では乱数をうまく使います。

乱数を上手く使うとモデルがオーバーフィッティングしているかどうか確認できます
説明変数 x と目的変数 y との間で数理モデル y = f(x) を構築するとき、構築されたモデルがオーバーフィッティングしているかどうか...

まず、データセットにおける x の数と同じ数だけ、乱数を用いて x のデータセットを生成したり、元の x のデータセットにおける x ごとにサンプルの値をシャッフルしたりして無意味なデータセットを作ります。次に元の x のデータセットとつなげます。x の数が 2 倍になります。そして、x の数が 2 倍になったデータセットで特徴量の重要度を計算します。

特にモデルの予測精度が低いときには、オリジナルの x の重要度と同じくらい、乱数に基づく x の重要度が高くなってしまいます。乱数に基づく x はまったく無意味な特徴量であり、その重要度と同じくらいの重要度であるということは、まったく無意味な特徴量の重要度と同程度ということであり、このような場合には特徴量の重要は意味をなさないことが理解できると思います。

もちろんモデルの予測精度は高いか低いか、二つのどちらかで判断できるものではなく、その間のグラデーションの中にモデルの予測精度があります。どの場合に特徴量の重要度を信用できるかは、モデルの予測精度だけでは判断できないところがあります。そのため不安な方は、上で述べた方法、つまり乱数に基づいて x のデータセットを生成して元の x のデータセットとつなげて特徴量の重要度を計算することで、オリジナルの x の重要度をどれくらい信用できるのか議論するとよいでしょう。

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

シェアする

フォローする