u++の備忘録

LightGBMの特徴量の順序変更が重要度に与える影響

同一の質問を何度か見かけたので、次回はリンクを貼って解決するためのメモです。

Q: 特徴量の順番を変えたら、重要度や精度が変わりましたが、なぜでしょうか?

A1: 学習時のハイパーパラメータ feature_fraction の影響かもしれません

LightGBMの学習時のハイパーパラメータの一つに feature_fraction があります。高速化や過学習の抑制を目的に、一部の特徴量を選択して学習するための機能です。デフォルトの値は 1.0 ですが、利用する特徴量の割合を 1 未満に設定している場合、選択が実行されます。順番を変えることで、選ばれる特徴量に影響が出る可能性があります。

lightgbm.readthedocs.io

A2: 2つの特徴量で得られる利得が同一の場合、インデックスの小さい特徴量が選ばれる仕様だからです

LightGBM のような決定木系のアルゴリズムでは、与えられたデータセットをより良く表現できるよう、さまざまな特徴量でのデータ分割方法を探索します。その探索において、2つの特徴量で得られる利得が同一の場合は、インデックスの小さい特徴量が選ばれる仕様になっています。順番を変えることで、選ばれる特徴量に影響が出る可能性があります。

github.com