数据集划分

测试集

在线性回归的章节中,我们已经知道,仅仅具备一个很小的训练误差并不能保证我们的预测函数就是优秀的,因为这种“优秀”仅仅体现在了对于已知的训练样本的假设上,而无法保证见到新的样本时候还能做出足够好的预测,过拟合就是当中的典型例子:

因此,预测准不准应当反映在对于新样本的泛化(generalize)能力。我们考虑将数据集划分为:

  • 训练集:70%
  • 测试集:30%

在对数据集进行训练集和测试集的划分前,最好先对数据集进行乱序,防止类似样本聚到一起

引入如下符号:

  • (x(1),y(1))(x^{(1)},y^{(1)})(x(1),y(1)) :训练样本
  • (xtest(1),ytest(1))(x^{(1)}_{test},y^{(1)}_{test})(xtest(1)​,ytest(1)​) :测试样本
  • mmm :训练集样本容量
  • mtestm_{test}mtest​ :测试集样本容量

线性回归的测试误差

在线性回归中,我们就通过计算测试集的代价函数来评估参数 θθθ 的泛化能力:
Jtest=12mtest∑i=1mtest(hθ(xtest(i))−ytest(i))2J_{test}=\frac1{2m_{test}}∑_{i=1}^{m_{test}}(h_θ(x^{(i)}_{test})−y^{(i)}_{test})^2Jtest​=2mtest​1​i=1∑mtest​​(hθ​(xtest(i)​)−ytest(i)​)2

逻辑回归的测试误差

在逻辑回归中,测试集的代价函数为:
Jtest(θ)=−1mtest∑i=1mtest(ytest(i)loghθ(xtest(i)))−(1−ytest(i))loghθ(xtest(i)))J_{test}(\theta)=-\frac1{m_{test}}∑_{i=1}^{m_{test}}(y_{test}^{(i)}\ logh_\theta(x^{(i)}_{test}))−(1-y_{test}^{(i)})\ logh_\theta(x^{(i)}_{test}))Jtest​(θ)=−mtest​1​i=1∑mtest​​(ytest(i)​ loghθ​(xtest(i)​))−(1−ytest(i)​) loghθ​(xtest(i)​))

由于逻辑回归处理的是 0/1 分类问题,其预测结果只有正确与错误之分,所以引入误分率(Misclassification Error):
err(hθ(x),y)={1,ifhθ(x)≥0.5,y=0orhθ(x)<0.5,y=10,otherwiseerr(h_\theta(x),y)=\begin{cases}1,\quad if\ h_\theta(x)≥0.5,\ y=0\ or\ h_\theta(x)<0.5,\ y=1\\ 0,\quad otherwise\end{cases}err(hθ​(x),y)={1,if hθ​(x)≥0.5, y=0 or hθ​(x)<0.5, y=10,otherwise​

则逻辑回归中的测试误差可以表示为:
Testerror=1mtest∑1mtesterr(hθ(xtest(i)),ytest(i))Test_{error}=\frac1{m_{test}}\sum_1^{m_{test}}err(h_\theta(x_{test}^{(i)}),\ y_{test}^{(i)})Testerror​=mtest​1​1∑mtest​​err(hθ​(xtest(i)​), ytest(i)​)

交叉验证集

在多项式回归中,我们总是尝试不同的多项式次数(degree)( degree )(degree),形成了不同的预测模型:

1.hθ(x)=θ0+θ1x1.\quad h_θ(x)=θ_0+θ_1x1.hθ​(x)=θ0​+θ1​x2.hθ(x)=θ0+θ1x+θ2x22.\quad h_θ(x)=θ_0+θ_1x+θ_2x^22.hθ​(x)=θ0​+θ1​x+θ2​x23.hθ(x)=θ0+θ1x+...+θ3x33.\quad h_θ(x)=θ_0+θ_1x+...+θ_3x^33.hθ​(x)=θ0​+θ1​x+...+θ3​x34.hθ(x)=θ0+θ1x+...+θ4x44.\quad h_θ(x)=θ_0+θ_1x+...+θ_4x^44.hθ​(x)=θ0​+θ1​x+...+θ4​x45.hθ(x)=θ0+θ1x+...+θ5x55.\quad h_θ(x)=θ_0+θ_1x+...+θ_5x^55.hθ​(x)=θ0​+θ1​x+...+θ5​x5

我们计算各个模型的对应的测试误差,假设 degreedegreedegree=5 时,测试误差最小,我们就选出了以下模型来迎接新的样本:
hθ(x)=θ0+θ1x+...+θ5x5h_θ(x)=θ_0+θ_1x+...+θ_5x^5hθ​(x)=θ0​+θ1​x+...+θ5​x5

对于 degreedegreedegree 的确定,是我们对于模型的选择(Model Selection),正如我们在线性回归中确定 θθθ 一样。在线性回归中,我们通过训练集确定模型,测试集来评估模型的泛化能力。在多项式回归中,我们通过训练集获得了参数 θθθ ,而通过测试集确定了模型,那么,这两个集合用完了,我们就缺少评估模型泛化能力的数据集。鉴于此,引入了交叉验证集(Cross Validation Set),“交叉”二字体现了一种承上启下的关系,他通过训练集获得的结果,选择了模型,并将该模型交给测试集进行评估:

  • 训练集:60%,确定参数 θθθ
  • 交叉验证集:20%,进行模型选择。
  • 测试集:20%,评价模型预测能力。

三者的误差函数如下:

  • 训练集误差:
    Jtrain(θ)=12m∑i=1mtrain(hθ(xtrain(i))−ytrain(i))2J_{train}(\theta)=\frac1{2m}\sum_{i=1}^{m_{train}}(h_\theta(x_{train}^{(i)})-y^{(i)}_{train})^2Jtrain​(θ)=2m1​i=1∑mtrain​​(hθ​(xtrain(i)​)−ytrain(i)​)2

  • 交叉验证集误差:
    Jcv(θ)=12m∑i=1mcv(hθ(xcv(i))−ycv(i))2J_{cv}(\theta)=\frac1{2m}\sum_{i=1}^{m_{cv}}(h_\theta(x_{cv}^{(i)})-y^{(i)}_{cv})^2Jcv​(θ)=2m1​i=1∑mcv​​(hθ​(xcv(i)​)−ycv(i)​)2

  • 测试集误差:
    Jtest(θ)=12m∑i=1mtest(hθ(xtest(i))−ytest(i))2J_{test}(\theta)=\frac1{2m}\sum_{i=1}^{m_{test}}(h_\theta(x_{test}^{(i)})-y^{(i)}_{test})^2Jtest​(θ)=2m1​i=1∑mtest​​(hθ​(xtest(i)​)−ytest(i)​)2

4.2 数据集划分-机器学习笔记-斯坦福吴恩达教授相关推荐

  1. 4.4 机器学习系统设计--垃圾邮件分类-机器学习笔记-斯坦福吴恩达教授

    机器学习系统设计–垃圾邮件分类 假定我们现有一封邮件,其内容如下: From: cheapsales@buystufffromme.com To: ang@cs.stanford.edu Subjec ...

  2. 4.6 大数据集-机器学习笔记-斯坦福吴恩达教授

    大数据集 在机器学习领域,流传着这样一句话: It's not who has the best algorithm that wins. It's who has the most data. 所以 ...

  3. 8.3 算法流程与评估-机器学习笔记-斯坦福吴恩达教授

    算法流程与评估 算法流程 有了前面的知识,我们可以得到,采用了高斯分布的异常检测算法流程如下: 选择一些足够反映异常样本的特征 xjx_jxj​ . 对各个特征进行参数估计: μj=1m∑i=1mxj ...

  4. 4.7 程序示例--算法诊断-机器学习笔记-斯坦福吴恩达教授

    程序示例–算法诊断 我们手头有一份大坝水的流量与水位关系的数据,首先我们将其划分为训练集.交叉验证集和测试集: # coding: utf-8 # algorithm_analysis/diagnos ...

  5. 3.12 程序示例--多分类问题-机器学习笔记-斯坦福吴恩达教授

    多分类问题 我们手上包含有手写字符的数据集,该数据集来自斯坦福机器学习的课后作业,每个字符图片大小为 20×20 ,总的样本规模为 5000×400 , 我们的神经网络设计如下,包含 1 个隐含层,隐 ...

  6. 8.1 概述-机器学习笔记-斯坦福吴恩达教授

    概述 异常检测(Anomaly Detection)是机器学习里面的一个常见应用,机器通过训练,将知道什么样的样本是正常样本,从而具备识别异常样本的能力. 飞机制造商在飞机引擎从生产线上流入市场前,会 ...

  7. 6.6 二分 K-Means 算法-机器学习笔记-斯坦福吴恩达教授

    二分 K-Means 算法 该算法补充自 <机器学习实战> 一书 常规的 K-Means 算法的误差通常只能收敛到局部最小,在此,引入一种称为二分 K-Means(bisecting km ...

  8. 6.1 无监督学习-机器学习笔记-斯坦福吴恩达教授

    无监督学习 从本节开始,将正式进入到无监督学习(Unsupervised Learning)部分.无监督学习,顾名思义,就是不受监督的学习,一种自由的学习方式.该学习方式不需要先验知识进行指导,而是不 ...

  9. 5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授

    SVM补充 决策边界 Coursera 上 ML 的课程对 SVM 介绍有限,参看了周志华教授的<机器学习>一书后,补充了当中对于 SVM 的介绍. 首先,我们考虑用更传统的权值定义式来描 ...

最新文章

  1. GPUImageMovieWriter实现暂停录制,重新录制
  2. Linux下使用Eclipse搭建ARM开发环境
  3. visual报表服务器项目,为 Visual Studio ALM 创建报表服务器项目
  4. Unexpected exception 'Cannot run program '的解决
  5. git学习指南_GIT 学习指南
  6. C# Winform 实现Ajax效果自定义按钮
  7. 【HDU5409】CRB and Graph 边双联通 子树最值
  8. ASP.NET Core的路由[2]:路由系统的核心对象——Router
  9. 学习笔记:UOS服务器修改ip地址
  10. 谈谈核心网UPF和开放
  11. App测试之性能测试流畅度fps测试
  12. 华为荣耀手机 (HUAWEI Honor V9) USB 调试 - ADB 调试
  13. hadoop2.9安装及配置_阿里云服务器上装Hadoop的心得(内附Hadoop2.9.2详细安装教程)...
  14. linux 全选 编辑文本_强烈推荐:Linux终端文本编辑器Micro
  15. 身份信息认证服务器,在线身份认证解决方案
  16. c语言long型是什么,c语言long类型是什么意思
  17. Cstyle的UEFI导读: UEFI的N种实现及差别
  18. MySQL 中的 CURDATE 函数与相关方法
  19. 数据库中的层次模型是什么(树形结构)
  20. 不只有CPU,细数移动GPU的那些事

热门文章

  1. 在SAE搭建Python+Django+MySQL(基于Windows)
  2. win7卸载打印机驱动
  3. Python 之 super MRO (没有遇到过适用场景)
  4. Bash:如何查看某个文件是那个程序/进程创建的?
  5. 在ASP.NET中实现Url Rewriting
  6. SWT 下菜单与子菜单添加的实现(详细图解)
  7. ZZ: How to remove 'Open in Windows Explorer' from the 'Actions Menu'
  8. python for
  9. ReactOS调试之fDebug
  10. 认识VC++类向导的使用