如何循环运行DataFrame预测任务并计算多次准确率均值?
循环运行预测并计算准确率均值的实现
当然可以通过循环实现你的需求,以下是适配你现有代码的实现方案:
from sklearn.metrics import accuracy_score import numpy as np # 提前获取真实标签,避免循环内重复读取 y_true = test_df["label"].values n_runs = 10 accuracy_records = [] for run_idx in range(n_runs): # 执行单次预测 predictions = test_df[['histor', 'philosoph', 'cook', 'roman', 'bibl']].apply(lambda x: baseline.predict(*x), axis=1) # 计算当前轮次准确率 current_acc = accuracy_score(y_true, predictions) accuracy_records.append(current_acc) # 输出单次结果 print(f"第 {run_idx + 1} 次运行准确率: {current_acc:.4f}") # 计算并输出均值 mean_accuracy = np.mean(accuracy_records) # 若不想引入numpy,可用 mean_accuracy = sum(accuracy_records) / n_runs print(f"\n{str(n_runs)}次运行的准确率均值: {mean_accuracy:.4f}")
关键说明
- 将
y_true的提取放在循环外部,减少重复的DataFrame操作,提升运行效率 - 用列表
accuracy_records存储每一轮的准确率结果,便于后续统计计算 - 格式化输出到四位小数,让结果更直观易读
- 计算均值时,既可以用
numpy.mean简化操作,也可以用Python基础的求和与除法实现,无需额外依赖
内容的提问来源于stack exchange,提问作者python_user
相关产品推荐
相关产品推荐

