Machine learning 如何更改Xgboost中的功能重要性

Machine learning 如何更改Xgboost中的功能重要性,machine-learning,data-science,xgboost,Machine Learning,Data Science,Xgboost,我有一个强制特性,在XGBOOST特性重要性得分中得分为0。不过,我希望我的模型考虑一下。是否有一种解决方案允许编辑(暴力)功能重要性?否则,有什么理论可以解决我的问题吗? 提前感谢。该算法在计算中实际考虑了您的特征。如果发现重要性为0,则意味着此功能与您试图预测的变量几乎没有(或根本没有)关系。换句话说,此功能没有提供任何信息来帮助算法做出决策(或在XGBoost的情况下进行拆分) 再看看这个变量,想一想:为什么你要强迫它作为一个预测因子?也许这不是正确的考虑因素。如果重要性为零,您可能还需要

我有一个强制特性,在XGBOOST特性重要性得分中得分为0。不过,我希望我的模型考虑一下。是否有一种解决方案允许编辑(暴力)功能重要性?否则,有什么理论可以解决我的问题吗?
提前感谢。

该算法在计算中实际考虑了您的特征。如果发现重要性为0,则意味着此功能与您试图预测的变量几乎没有(或根本没有)关系。换句话说,此功能没有提供任何信息来帮助算法做出决策(或在XGBoost的情况下进行拆分)

再看看这个变量,想一想:为什么你要强迫它作为一个预测因子?也许这不是正确的考虑因素。如果重要性为零,您可能还需要再次检查是否正确实现了该功能


正如其他一些评论所说,你可以尝试加深你的树,希望它能在你的特征和目标之间找到一些有用的联系

问题在于您使用的模型,XGBoost在拟合时选择特征重要性以提高分数

您可以使用另一个模型,如KNN。如果您在功能上使用
StandardScaler
,即使相关性非常差,它们都具有相同的重要性。然后,可以更改任何特征的标准偏差以增加或减少其重要性


您很可能会降低模型的性能,但如果您确实希望考虑某个功能,我认为这是一个很好的方法。

模型已经考虑了这些功能。这就是为什么它知道他们一开始是多么重要。特征重要性值是模型的结果和信息,而不是要调整的设置和参数。您可以使用它们来重新设计流程;在这种情况下,通常的做法是删除最不重要的特征并重新运行(特征选择)。“算法”出于某种原因将其排除在外。他们给他提供的信息最少。您可以尝试使您的模型更深入(使用“max_depth”超参数),因为添加更多拆分可能会添加它们,但它们的重要性仍然最低。