如何改变 Xgboost 中的特征重要性
How to change the features imporance in Xgboost
我有一个强制特征在 XGBOOST 特征重要性得分中得分为 0。但是,我希望我的模型考虑它。是否有允许编辑(蛮力)特征重要性的解决方案?否则,有什么理论可以解决我的问题吗?
提前致谢。
算法实际上在计算中考虑了您的特征。如果它发现重要性为 0,则意味着此功能与您尝试预测的变量几乎没有(或没有)关系。换句话说,此功能没有提供任何信息来帮助算法做出决定(或在 XGBoost 的情况下进行拆分)。
试着再看看这个变量并思考:你为什么要强制它作为预测变量?也许这不是要考虑的正确功能。如果重要性为零,您可能还需要仔细检查是否已正确实现该功能。
正如其他一些评论所述,您可以尝试加深树,希望它能在您的特征和目标之间找到一些有用的联系。
问题出在你使用的模型上,XGBoost 在拟合时选择特征重要性来提高分数。
您可以使用其他模型,例如 KNN。如果你在特征上使用 StandardScaler
,即使相关性非常差,它们也将具有相同的重要性。然后,您可以更改任何特征的标准偏差以增加或减少其重要性。
您很可能会降低模型的性能,但如果您绝对希望考虑某个特性,我认为这是一个很好的方法。
我有一个强制特征在 XGBOOST 特征重要性得分中得分为 0。但是,我希望我的模型考虑它。是否有允许编辑(蛮力)特征重要性的解决方案?否则,有什么理论可以解决我的问题吗? 提前致谢。
算法实际上在计算中考虑了您的特征。如果它发现重要性为 0,则意味着此功能与您尝试预测的变量几乎没有(或没有)关系。换句话说,此功能没有提供任何信息来帮助算法做出决定(或在 XGBoost 的情况下进行拆分)。
试着再看看这个变量并思考:你为什么要强制它作为预测变量?也许这不是要考虑的正确功能。如果重要性为零,您可能还需要仔细检查是否已正确实现该功能。
正如其他一些评论所述,您可以尝试加深树,希望它能在您的特征和目标之间找到一些有用的联系。
问题出在你使用的模型上,XGBoost 在拟合时选择特征重要性来提高分数。
您可以使用其他模型,例如 KNN。如果你在特征上使用 StandardScaler
,即使相关性非常差,它们也将具有相同的重要性。然后,您可以更改任何特征的标准偏差以增加或减少其重要性。
您很可能会降低模型的性能,但如果您绝对希望考虑某个特性,我认为这是一个很好的方法。