我最近在数据集中遇到了“奇怪”的观察。在对具有20个特征的XGB建模之后,我绘制了具有最高增益值的前10个特征。结果如下所示:
F1 140027.061202
F2 11242.470370
F3 9957.161039
F4 9677.070632
F5 7103.275865
F6 4691.814929
F7 4030.730915
F8 2775.235616
F9 2384.573760
F10 2328.680871
如您所见,与所有其他功能相比,F1以增益为主导(增益比F2高12倍)。我验证了测试集上的结果,该模型没有过拟合,并且给出了不错的结果(与我的成绩相比):
F1-score: 0.739812237993
Accuracy: 0.839632893701
Precision: 0.63759578607
Recall: 0.881059718486
根据这些结果,得出F1功能足以构建模型的结论是否正确?
为了证明这一点,我使用相同的参数重新运行了建模,但是现在将F1作为独立功能。结果仅比以前稍差(并且没有过度拟合):
F1-score: 0.710906846703 Accuracy: 0.819880412472 Precision: 0.607953806173 Recall: 0.85583736242 在两种情况下,我的XGB参数都非常简单:
alg = XGBRegressor(
n_estimators=200,
max_depth=5,
objective='binary:logistic',
seed=27,
)
# Fit the algorithm on the data
metric = 'map'
alg.fit(X_train, y_train, eval_metric=metric)
在排除特征F1并重新拟合模型后,我得到了相似的验证指标(稍差一些),但在那种情况下,特征F3成为“主导”,增益很高〜10000,而特征F2是下一个增益值为〜10000的模型。 。
是否有任何技术可以通过对F1进行某些转换来增强其他功能并提高准确性(或F1得分)? 有什么方法可以均衡特征增益并改善模型吗? 我是否应该尝试“收集”更多可以与F1相提并论的功能? 谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。