You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Scikit-learn分类器预测概率结果与原始测试集数据合并?

测试集与分类器概率输出的合并及导出方案

嘿,你已经完成了模型训练和概率输出的转换,剩下的合并数据并导出给管理层其实非常直接,我给你一步步拆解靠谱的操作:

1. 先确保索引对齐(重中之重)

首先得保证原始测试集和你用predict_probas转成的DataFrame索引完全匹配——这是合并不出错的核心。如果你的测试集是从全量数据拆分来的,记得保留原始索引;要是之前重置过索引,一定要先同步两者的索引值,避免样本和概率对应错了。

2. 给概率结果起易懂的列名

predict_probas返回的是二维数组,每一行对应两类的概率,建议给列起管理层能看懂的名字,比如负类概率和正类概率(或者对应你的业务标签,比如非客户概率/潜在客户概率):

# 假设clf是你训练好的分类器(RF/MLP/Extra Trees都适用)
proba_df = pd.DataFrame(
    clf.predict_proba(X_test),
    columns=['负类概率', '正类概率'],
    index=X_test.index  # 直接复用测试集的索引,确保对齐
)

3. 合并原始测试集与概率数据

用Pandas的concat方法按列合并最直观,要是你有测试集的真实标签,也可以一起加进去,方便管理层对比模型预测和实际情况:

# 合并逻辑:原始测试特征 + 概率结果 + 真实标签(可选)
# 如果测试集本身已经带标签,就不用加y_test那部分
final_report_df = pd.concat(
    [X_test, proba_df, y_test.rename('真实标签')],
    axis=1  # axis=1表示按列合并
)

要是你之前对数据做了标准化,这里一定要用未标准化的原始测试集——标准化后的数据对管理层来说没有业务意义,他们需要看真实的特征值结合概率结果。

4. 导出为CSV文件

最后一步导出,设置好参数让文件更友好:

# index=False避免导出多余的索引列,encoding解决中文乱码问题
final_report_df.to_csv('二分类项目结果汇总.csv', index=False, encoding='utf-8-sig')

额外小技巧

如果同时跑了多个分类器(RF/MLP/Extra Trees),可以给每个模型的概率列加前缀,比如RF_负类概率、MLP_正类概率,把所有结果合并到同一个CSV里,方便管理层对比不同模型的表现。

内容的提问来源于stack exchange,提问作者Abhik Jha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:35:55