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

如何用Python Pandas代码筛选兼具高测试准确率与小差异的模型?

模型筛选的Pandas代码修改方案

模型性能表

Mdl_nmTrain_accTest_accdifference in (%)
GLM0.8450560.8589961.649499
RF0.8761570.8935561.985884
XGB0.8713560.8859811.678425

需求说明

需要筛选同时满足Test_acc尽可能高且Train_acc与Test_acc差异尽可能小的模型,最终期望选出XGB(RF的Test_acc最高但差异过大,XGB的Test_acc接近最高且差异更小)。

原有代码问题

原有代码仅筛选Test_acc等于最大值的模型,忽略了差异条件,且存在拼写错误(Test_accc多了一个c),因此只能选出RF。

修改后的代码方案

方案一:基于Test_acc阈值筛选后取差异最小模型

这种方法先保留Test_acc接近最大值的模型(可调整阈值比例),再从中选择差异最小的,符合你期望的筛选逻辑:

import pandas as pd

# 构造示例数据
data = {
    'Mdl_nm': ['GLM', 'RF', 'XGB'],
    'Train_acc': [0.845056, 0.876157, 0.871356],
    'Test_acc': [0.858996, 0.893556, 0.885981],
    'difference in (%)': [1.649499, 1.985884, 1.678425]
}
df = pd.DataFrame(data)

# 计算Test_acc最大值
max_test_acc = df['Test_acc'].max()
# 设定阈值:保留Test_acc不低于最大值99%的模型(可根据需求调整比例)
threshold_ratio = 0.99
threshold = max_test_acc * threshold_ratio

# 筛选符合阈值的模型,按差异升序排序后取第一个
selected_model = df[df['Test_acc'] >= threshold].sort_values('difference in (%)', ascending=True).iloc[0]['Mdl_nm']
print(selected_model)  # 输出:XGB

方案二:综合得分排序法

通过标准化两个指标并赋予权重,计算综合得分后选取得分最高的模型,更灵活平衡两个条件:

import pandas as pd

data = {
    'Mdl_nm': ['GLM', 'RF', 'XGB'],
    'Train_acc': [0.845056, 0.876157, 0.871356],
    'Test_acc': [0.858996, 0.893556, 0.885981],
    'difference in (%)': [1.649499, 1.985884, 1.678425]
}
df = pd.DataFrame(data)

# 标准化指标(消除量纲影响)
df['norm_test_acc'] = (df['Test_acc'] - df['Test_acc'].min()) / (df['Test_acc'].max() - df['Test_acc'].min())
# 差异值反向标准化(值越大表示差异越小)
df['norm_diff'] = (df['difference in (%)'].max() - df['difference in (%)']) / (df['difference in (%)'].max() - df['difference in (%)'].min())

# 设定权重:Test_acc占70%,差异占30%(可根据需求调整)
df['composite_score'] = df['norm_test_acc'] * 0.7 + df['norm_diff'] * 0.3

# 按综合得分降序排序,取第一个模型
selected_model = df.sort_values('composite_score', ascending=False).iloc[0]['Mdl_nm']
print(selected_model)  # 输出:XGB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:47:07