当前位置: 首页 > web >正文

机器学习第十九讲:交叉验证 → 用五次模拟考试验证真实水平

机器学习第十九讲:交叉验证 → 用五次模拟考试验证真实水平

资料取自《零基础学机器学习》。
查看总目录:学习大纲

关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南


交叉验证是模型考试的防作弊系统,通过多次划分考卷验证真实能力[^8-2]。通过驾校考试案例详解:

一、核心原理(驾照科目模拟考)

假设驾校有100名学员的考试数据,采用5折交叉验证:

总数据集
分5份试卷
轮流出题
成绩取平均

考试流程

  1. 将100人分5组(每组20人)
  2. 4组当题库,1组当考题 → 五轮考试不重复 [参考材料3]
  3. 最终成绩 = (88%+85%+90%+92%+87%)/5 = 88.4%

类比说明:就像高考前五套模拟卷覆盖全部知识点,比单次考试更客观[^3]

二、操作步骤(心脏病预测案例)

数据集:300例患者数据(200例患病,100例健康)

原始数据300例
拆成5份各60例
训练集240例
模型1成绩85%
验证集60例
训练集240例
模型2成绩83%
验证集60例
...
模型5成绩88%

代码实现

from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)
print("平均准确率:", scores.mean())  # 输出:86.2%

关键优势:避免因单次抽题偏差(如考题全是疑难病例)影响评估[^3]

三、分场景应用(不同考试模式对比)

| 验证方式 | 特点 | 适用场景 | [参考材料3] |
|----------------|---------------------------|-----------------------|
| 简单划分验证 | 快速但成绩波动大 | 大数据集初步筛选 |
| 5折交叉验证 | 均衡效率与准确性 | 中小数据集标准流程 |
| 10折交叉验证 | 更精准但耗时增加10倍 | 精细调参研究 |

案例对比

  • 单次验证成绩:92%(可能抽到简单题)
  • 5次交叉验证:88.4%(反映真实水平)
  • 实际考试结果:86%(接近交叉验证均值)[^2]

四、注意事项(防止无效验证)

  1. 数据打乱:需先随机排序,避免时间顺序干扰 [参考材料3]
    from sklearn.utils import shuffle
    X, y = shuffle(X, y, random_state=0)
    
  2. 分层抽样:保持正负样本比例相同,如每组保持2:1病患健康比例[^3]
  3. 避免泄漏:预处理步骤(如标准化)应在每次训练时重新计算[^5]

典型错误

错误流程
全数据标准化
后分割训练集测试集
分数虚高
正确流程
先分割训练测试
训练集统计
应用到测试集

目录:总目录
上篇文章:机器学习第十八讲:混淆矩阵 → 诊断模型在医疗检查中的误诊情况


[2][3][^5]《零基础学机器学习》第八章第三节验证方法
[^8-2]《零基础学机器学习》第八章第三节验证方法

http://www.xdnf.cn/news/7754.html

相关文章:

  • Linux基础IO(二)
  • upload-labs通关笔记-第14关 文件上传之文件头绕过(图片马)
  • 建筑墙壁红外热成像裂缝潮湿检测数据集VOC+YOLO格式306张2类别
  • 【项目】—高并发内存池
  • AUTOSAR图解==>AUTOSAR_SRS_SAEJ1939
  • day16-17-磁盘管理
  • 流程控制-循环
  • Robot Studio开发入门指南
  • 频分复用信号在信道中的状态
  • 第11天-Python GUI开发实战:Tkinter从入门到项目实践
  • 鸿蒙开发进阶:深入解析ArkTS语言特性与高性能编程实践
  • 【设计模式】基于 Java 语言实现工厂模式
  • 第二届帕鲁杯时间折叠(TimeFold Paradox)
  • 绝缘栅双极型晶体管IGBT的结构与特点
  • 【Git】常用命令大全
  • Git的windows开发与linux开发配置
  • Dify快速上手 MCP,接入高德地图 Server 实战攻略
  • 香港科技大学物理学理学(科学计算与先进材料物理与技术)硕士招生宣讲会——深圳大学
  • 制作一款打飞机游戏52:子弹模式
  • C++显式声明explicit
  • 1G(第一代移动通信系统)详解
  • python 提交 命令到远程windows服务器并获取作业进程id
  • ABAP - SAP与企业微信集成-推送文件到企业微信
  • DeepSeek提示工程Prompt Engineering
  • multipart/* 响应是否必须使用 chunked 编码?
  • 常用UI自动化测试框架
  • 【Python训练营打卡】day31 @浙大疏锦行
  • 本征半导体与杂质半导体
  • Ubuntu操作系统里面安装Docker Compose
  • Python实战:打造一个功能完整的单位转换器(长度/温度/货币)