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

Python中如何匹配目标数据集y与精简预测数据集的行并计算审计失败占比

随机森林审计机构风险筛选的标签匹配与占比计算

需求背景

使用随机森林算法实现审计机构筛选,目标是识别最可能发生审计失败的1000家机构,目前已生成两类验证集子集:

  • 模型输出的1000家最高风险机构DataFrame:riskiest_preds
  • 对照用的验证集随机抽取1000家机构DataFrame:random_preds

两类子集均未存储机构真实分类标签,真实标签保存在Series类型的y_validate中,需要分别计算两个子集内实际审计失败(即标签值为1)的样本占比。

遇到的问题

y_validate总数据量超过3000行,存在两个操作疑问:

  1. 如何将X_validate的子集和y_validate的对应标签正确匹配
  2. 如何统计y_validate中指定样本的标签为1的占比

补充说明

审计失败预测概率通过RF_model.predict_proba(X_validate)生成,将概率列拼接至X_validate的副本X_validate_copy后,通过如下代码筛选高风险机构:
riskiest_preds = X_validate_copy.nlargest(1000, ["RF Probability Fail"], keep='first')

解决方案

循环实现版本

FailCount = 0

risky_index = riskiest_preds.index

for index in list(risky_index):
    if y_validate[index]==1:
        FailCount += 1

true_prop_fail = FailCount/1000 
## 计算结果示例:true_prop_fail = .618

FailCount_random = 0

random_index = random_preds.index

for index in list(random_index):
    if y_validate[index]==1:
        FailCount_random += 1

true_prop_fail_random = FailCount_random/1000 
## 计算结果示例:true_prop_fail_random = .215

更高效的向量化实现(推荐)

利用pandas天然的索引匹配特性,无需循环即可完成计算,代码更简洁、运行效率更高:

# 计算高风险组实际审计失败占比
true_prop_fail = y_validate.loc[riskiest_preds.index].mean()
# 计算随机对照组实际审计失败占比
true_prop_fail_random = y_validate.loc[random_preds.index].mean()

内容的提问来源于stack exchange,提问作者Nadia Almasalkhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:04