特徴再帰消去法と特徴スクリーニングの Python 実装

機能の再帰的除去

        Feature Recursive Elimination (RFE) は、必要な数の機能に達するまでモデルを繰り返しトレーニングし、弱い機能を削除する機能選択アルゴリズムです。

アルゴリズムの手順は次のとおりです。

  1. まず、すべての特徴がモデルに入力され、モデルのパフォーマンス評価指標 (正解率、F1 スコアなど) が取得されます。

  2. 次に、性能評価指数のランキングが最も低い機能を選択し、機能セットから削除します。

  3. モデルを再度トレーニングし、モデルのパフォーマンス評価指標を計算します。

  4. フィーチャの数がプリセット値に達するか、フィーチャを削除できなくなるまで、手順 2 と 3 を繰り返します。

機能の再帰的除去法の利点は、オーバーフィッティングの問題を回避し、モデルの一般化能力を向上できることです。同時に、すべての機能から最も重要な機能を選択できるため、モデルの効率と精度を向上させることができます。欠点は、特に特徴の数が多い場合に、モデルを繰り返しトレーニングする必要があるため、計算コストが高くなることです。

例: 100 個の特徴を持つバイナリ分類問題があるとします。機能の再帰的除去を使用して、最良の 20 個の機能を選択したいと考えています。機能の再帰的除去を使用する手順は次のとおりです。

  1. 100 のすべての機能 (ロジスティック回帰、サポート ベクター マシンなど) をモデルに入力し、0.85 の精度など、モデルのパフォーマンス評価指標を取得します。

  2. 機能の重みまたは重要度に応じて、パフォーマンス評価インデックスで最も低いランクの機能 (重みが最小の機能など) を選択し、それを機能セットから削除して、99 個の機能を含む新しい機能セットを取得します。 .

  3. モデルを再度トレーニングし、モデルのパフォーマンス評価指標を計算します。たとえば、正解率は 0.86 です。

  4. フィーチャの数が 20 に達するまで、ステップ 2 と 3 を一度に 1 フィーチャずつ繰り返します。

        このプロセスでは、機能を選択するたびにパフォーマンス評価指標を記録して、最終的に最適な機能セットを選択することができます。最終的に、20 個の最適な機能を含む機能セットを取得でき、対応するモデルのパフォーマンス評価指標も最適に達しました。

Python 実装

        100 の特徴とバイナリ ターゲット変数を含むデータセットがあるとします。ロジスティック回帰モデルと特徴の再帰的除去を使用して、最適な 20 の特徴を選択します。


from sklearn.linear_model import LogisticRegression
from sklearn.feature_selection import RFE
from sklearn.datasets import make_classification

# 生成样本数据,包含100个特征和一个二分类目标变量
X, y = make_classification(n_samples=1000, n_features=100, n_informative=20, n_redundant=0, random_state=1)

# 创建逻辑回归模型
model = LogisticRegression()

# 创建特征递归消除法对象,选择最优的20个特征
rfe = RFE(model, n_features_to_select=20)

# 使用特征递归消除法来训练模型并选择最优的20个特征
X_selected = rfe.fit_transform(X, y)

# 打印最优的20个特征的索引和名称
print(rfe.get_support(indices=True))

# 打印特征选择后的数据集
print(X_selected)

上記のサンプル コードでは、関数を使用して、make_classification()100 個の特徴とバイナリ ターゲット変数を含むサンプル データセットを生成しました。次に、ロジスティック回帰モデルを作成し、選択する最適な 20 個の機能を指定する機能再帰消去オブジェクトを作成しました。最後に、fit_transform()メソッドを使用してモデルをトレーニングし、最良の 20 個の特徴を選択します。get_support(indices=True)メソッドを通じて、最適な 20 個の特徴のインデックスと名前を取得できます。結果は次のとおりです。

[ 7  9 19 23 30 33 42 43 44 49 62 66 68 70 74 75 79 84 92 93]
[[ 2.10214605  0.95832137 -0.13046364 ... -4.84124111 -2.05522712
  -0.73465979]
 [-2.32648214 -0.53958974  1.85796597 ...  1.5400122   0.83695367
  -5.14693185]
 [ 1.02728537  0.23901911 -0.41383436 ... -0.28077503 -0.02212711
  -0.70009921]
 ...
 [ 3.37189209  0.52963901 -0.36913823 ... -4.05453548  2.5709366
   4.07060606]
 [-1.38319684  1.65007044  2.42354167 ... -0.25148219 -1.23954323
   2.37080765]
 [ 0.13845329 -0.28192572 -3.96853172 ... -4.67964015  2.46770024
   1.39891579]]

以上が特徴再帰消去法の紹介です。

参考:https://mp.weixin.qq.com/s/AqbyqURqK4r4G49IlD0cvw

おすすめ

転載: blog.csdn.net/weixin_64338372/article/details/130021360