来自sklearn.ensemble的Python特征选择特征重要性方法在多次运行中给出了不一致的结果



我正在尝试使用sklearn.ensemble的python功能进行功能选择。问题是每次我运行代码(如下(时,结果都会有所不同。我的意思是它给了我不同的列作为最大的特征重要性值。是不是很奇怪?还是我做错了什么(?

我有太多的功能(大约 500 ...和50k记录(。我想获得更重要的功能来改进分类。但是特征重要性的结果似乎并不一致。

#Feature importance 
from sklearn.ensemble import ExtraTreesClassifier
import matplotlib.pyplot as plt
#X independednt cols and y the target col
model = ExtraTreesClassifier()
model.fit(X,y)
# print(model.feature_importances_)
feat_importances = pd.Series(model.feature_importances_, index=X.columns)
feat_importances.nlargest(20).plot(kind ="barh")

随机性进入拟合,因此您不应期望最终得到完全相同的结果。要获得可重现的结果,您可以向估算器提供seed参数。

如果对于不同的种子,你最终得到的变量重要性大不相同,这意味着就树木可以捕获的数据而言,似乎没有一个特征主导了数据的预测内容。因此,应该对可变的重要性持保留态度。

最新更新