Borutaで有効な特徴量を残すための5つの対策

AI競馬

Borutaで有効な特徴量を残すための5つの対策

Borutaを使った特徴量選択で、すべての特徴量が削除されてしまう場合があります。次のようなエラーメッセージが表示されました。

[LightGBM] [Warning] There are no meaningful features which satisfy the provided configuration. Decreasing Dataset parameters min_data_in_bin or min_data_in_leaf and re-constructing Dataset might resolve this warning.
[LightGBM] [Info] Number of positive: 1504, number of negative: 2220
[LightGBM] [Info] Total Bins 0
[LightGBM] [Info] Number of data points in the train set: 3724, number of used features: 0
[LightGBM] [Fatal] Forced splits file includes feature index 0, but maximum feature index in dataset is -1

Borutaを使った特徴量選択で、すべての特徴量が削除されてしまう場合、少なくとも1つの有効な特徴量を残すために、以下の方法を試してみてください。

alpha パラメータの調整

alphaパラメータは、特徴量を重要と判断する際の有意水準を指定します。この値を大きくすることで、より多くの特徴量が「重要」と見なされるようになります。たとえば、デフォルトのalpha=0.05alpha=0.1alpha=0.2に設定してみてください。

■修正するパラメータ(※右にスクロールしてください)

# Borutaによる特徴量選択
estimator = RandomForestClassifier(n_estimators=100, random_state=0, n_jobs=-1)
feature_selector = BorutaPy(estimator=estimator, n_estimators='auto', random_state=0, verbose=2, alpha=0.1, max_iter=100)

max_iter パラメータの増加

Borutaのmax_iterパラメータで指定される反復回数を増やすことで、モデルが特徴量の重要度を適切に評価できるようにします。デフォルトは100ですが、これを200や300に増やすことで、少なくとも1つの特徴量が残る可能性が高まります。

■修正するパラメータ(※右にスクロールしてください)

# Borutaによる特徴量選択
estimator = RandomForestClassifier(n_estimators=100, random_state=0, n_jobs=-1)
feature_selector = BorutaPy(estimator=estimator, n_estimators='auto', random_state=0, verbose=2, alpha=0.05, max_iter=200)

two_step パラメータの利用

two_stepパラメータをTrueに設定することで、Borutaが特徴量の選択プロセスを二段階で行います。これにより、最初のステップでのフィルタリングが少し緩和されるため、少なくとも1つの有効な特徴量が残る可能性が高まります。

■追加するパラメータ(※右にスクロールしてください)

# Borutaによる特徴量選択
estimator = RandomForestClassifier(n_estimators=100, random_state=0, n_jobs=-1)
feature_selector = BorutaPy(estimator=estimator, n_estimators='auto', random_state=0, verbose=2, alpha=0.05, max_iter=100, two_step=True)

特定の特徴量を強制的に残す

特定の特徴量が有用であるとわかっている場合、その特徴量を手動で選択したり、Borutaでの選択結果に関わらず残すようにすることも考えられます。

異なるモデルの利用

Borutaは指定されたモデルの特徴量重要度に依存しているため、異なるモデルを使用することで、特徴量の選択結果が変わることがあります。例えば、ランダムフォレスト以外の分類器や回帰器を試してみることが有効です。

これらのアプローチを組み合わせて試すことで、少なくとも1つの有効な特徴量を残すことができる可能性が高まります。