机器学习模型进行predict预测时,预测全为1
最近在维护xgboost二分类算子,经过现场客户反馈的问题,模型在评估推理的时候,结果很不理想,实际测试确实模型预测全为1
一开始以为是数据不均匀导致的预测效果差,也尝试了分布均衡的数据以及网格搜索模型参数调参,结果还是同样的效果,问题没出现在这里
接着经过debug后,发现
模型在fit的时候,特征列经过一些列操作,变成了倒序的
传入的顺序是这样的
--features_col=c_user_id,c_column_1,c_column_2,c_column_3,c_column_4,c_column_5,c_column_6,c_column_7,c_column_8,c_column_9,c_column_10,c_column_11,c_column_12,c_column_13,c_column_14,c_column_15,c_column_16,c_column_17,c_column_18,c_column_19,c_column_20,c_column_21,c_column_22,c_column_23,c_column_24,c_column_25,c_column_26,c_column_27,c_column_28,c_column_29,c_column_30
经过一顿操作变成了这样
也就是说model在fit的数据是上面的数据,而在预测predict的时候特征列完全相反,经过尝试,这样会导致预测全为1或全为0,导致模型泛化效果差