gpt4 book ai didi

python - ExtraTreesClassifier 的特征重要性返回全零

转载 作者:行者123 更新时间:2023-11-30 10:00:32 26 4
gpt4 key购买 nike

我想使用 ExtraTreesClassifier 计算给定数据集的特征重要性。我的目标是找到用于进一步分类过程的高分特征。 X 数据集的大小为 (10000, 50),其中 50 列是特征,该数据集仅表示从一个用户(即来自同一类)收集的数据,Y 是标签(全为零)。

但是,输出将所有特征重要性返回为零!!

代码:

from sklearn.ensemble import ExtraTreesClassifier
import matplotlib.pyplot as plt
model = ExtraTreesClassifier()
model.fit(X,Y)
X = pd.DataFrame(X)
print(model.feature_importances_) #use inbuilt class feature_importances of tree based classifiers
#plot graph of feature importances for better visualization
feat_importances = pd.Series(model.feature_importances_, index=X.columns)
feat_importances.nlargest(20).plot(kind='barh')
plt.show()

输出:

enter image description here

谁能告诉我为什么所有功能的重要性分数都为零?

最佳答案

如果类标签都具有相同的值,则特征重要性都将为 0。

我对算法不够熟悉,无法给出为什么重要性返回为 0 而不是 nan 或类似的技术解释,但从理论角度来看:

您正在使用 ExtraTreesClassifier,它是决策树的集合。这些决策树中的每一个都会尝试通过以某种方式最小化杂质(在 sklearn 额外树的情况下为基尼系数或熵)来区分目标中不同类别的样本。当目标仅包含单个类别的样本时,杂质已经是最低的,因此决策树不需要 split 来进一步减少杂质。因此,不需要任何特征来减少杂质,因此每个特征的重要性为 0。

换一种方式考虑这个问题。每个特征与目标的关系与任何其他特征完全相同:无论特定样本的特征值是多少,目标都是 0(目标完全独立于特征)。因此,每个特征都没有提供有关目标的新信息,因此对于进行预测没有值(value)。

关于python - ExtraTreesClassifier 的特征重要性返回全零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59209051/

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