如何使用已训练的XGB分类模型对新数据行进行预测
新数据预测操作指南
前置要求
首先要保证你待预测的全新数据的特征和训练时的X_train完全对齐:
- 特征数量、列顺序完全一致
- 所有预处理逻辑(比如缺失值填充、类别编码、数值归一化等)和训练集的处理逻辑完全相同,不能有差异,否则预测结果会失真
预测方法选择
你提到需要对新数据「打分」,结合你训练时用AUC作为评估指标的情况,是否使用predict_proba()可以根据你的需求判断:
model.predict(X):输出是模型判定的分类标签(二分类场景下为0或1),默认以0.5作为概率切分阈值,适合只需要最终分类结果的场景model.predict_proba(X):输出是样本属于每个类别的概率值,二分类场景下返回形状为(样本数, 2)的数组,第一列是样本属于类别0的概率,第二列是样本属于类别1的概率,适合需要概率打分、自定义分类阈值、排序类的场景,你提到的「打分」需求一般用这个方法
具体操作代码
场景1:只需要分类标签
# X_new为预处理后的新数据特征矩阵 y_new_pred = model.predict(X_new) # 输出的y_new_pred就是每个新样本的分类标签
场景2:需要得到正例概率打分
# X_new为预处理后的新数据特征矩阵 y_new_proba = model.predict_proba(X_new) # 提取类别1的概率作为最终打分 positive_score = y_new_proba[:, 1]
小提示:如果你需要自定义分类阈值(比如根据业务需要调整为0.4来提高召回率),可以拿到
positive_score后自行判断,比如custom_predict = [1 if x>0.4 else 0 for x in positive_score]即可。
内容的提问来源于stack exchange,提问作者titu84hh
相关产品推荐
相关产品推荐

