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

Kaggle泰坦尼克数据集21种算法交叉验证结果缺失问题咨询

问题原因
  • 核心错误是交叉验证循环内重复覆盖cv_results变量:遍历21个算法的for循环中,每次执行cv_results = ...都会覆盖上一个算法的计算结果,循环结束后cv_results仅保留了列表最后一个算法(二次判别分析)的10折交叉验证结果,因此输出只有10条拆分数据,没有其余20个算法的信息。
  • 你贴出的代码中Target = ['Survived]存在语法错误,缺少闭合单引号,需修改为Target = ['Survived']否则会直接报错。
修复代码

修改交叉验证和结果输出部分的逻辑,提前存储每个算法的结果即可获取全部21种算法的评分:

# 初始化空列表存储所有算法的交叉验证结果
cv_results_collect = []

for model in MLA:
    # 提取当前算法名称用于标识
    algorithm_name = model.__class__.__name__
    # 执行交叉验证
    single_cv_res = model_selection.cross_validate(
        model, 
        tts[data_c], 
        np.ravel(tts[Target]), 
        cv=cv_split, 
        return_train_score=True
    )
    # 给当前结果添加算法名称列
    single_cv_res["algorithm"] = algorithm_name
    # 转换为DataFrame存入总列表
    cv_results_collect.append(pd.DataFrame(single_cv_res))

# 合并所有算法的结果得到完整表
full_cv_results = pd.concat(cv_results_collect, ignore_index=True)

# 输出全部210条(21个算法×10折)验证结果
print(full_cv_results)

# 可选:按算法聚合输出平均得分,方便直接对比性能
print(full_cv_results.groupby("algorithm")[["test_score", "train_score", "fit_time"]].mean().sort_values("test_score", ascending=False))
补充说明

运行时如果耗时较长属于正常情况,SVM、高斯过程类算法本身拟合速度较慢,等待执行完成即可看到所有算法的结果。

内容的提问来源于stack exchange,提问作者Everything is Awesome

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:45:03