gpt4 book ai didi

python - 如何确定 SelectFromModel() 中用于选择特征的阈值?

转载 作者:太空狗 更新时间:2023-10-30 01:19:09 25 4
gpt4 key购买 nike

我正在使用随机森林分类器进行特征选择。我总共有 70 个特征,我想从 70 个特征中选择最重要的特征。下面的代码显示了分类器,它显示了从最重要到最不重要的特征。

代码:

feat_labels = data.columns[1:]
clf = RandomForestClassifier(n_estimators=100, random_state=0)

# Train the classifier
clf.fit(X_train, y_train)

importances = clf.feature_importances_
indices = np.argsort(importances)[::-1]

for f in range(X_train.shape[1]):
print("%2d) %-*s %f" % (f + 1, 30, feat_labels[indices[f]], importances[indices[f]]))

enter image description here

现在,我正在尝试使用 sklearn.feature_selection 中的 SelectFromModel,但我该如何确定给定数据集的阈值。

# Create a selector object that will use the random forest classifier to identify
# features that have an importance of more than 0.15
sfm = SelectFromModel(clf, threshold=0.15)

# Train the selector
sfm.fit(X_train, y_train)

当我尝试 threshold=0.15 然后尝试训练我的模型时,我收到一条错误消息,指出数据噪音太大或选择太严格。

但是如果我使用threshold=0.015,我就可以根据选定的新功能训练我的模型那么我该如何决定这个阈值呢?

最佳答案

我会尝试以下方法:

  1. 从低阈值开始,例如:1e-4
  2. 使用 SelectFromModel fit & transform 减少你的特征
  3. 为您的估算器(在您的情况下为 RandomForestClassifier)计算所选特征的指标(准确性等)
  4. 提高阈值并从第 1 点开始重复所有步骤。

使用这种方法,您可以为您的特定数据和估算器估算最佳阈值

关于python - 如何确定 SelectFromModel() 中用于选择特征的阈值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49345578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com