评估预测函数(3)---Model selection(选择多项式的次数) and Train/validation/test sets
假设我们现在想要知道what degree of polynomial to fit to a data set 或者 应该选择什么features 或者 如何选择regularization parameter λ
我们该如何做?----Model selection process
很好的拟合training set并不意味着是一个好的hypothesis

上图是一个overfitting的例子,它能很好的拟合training data,但它不是一个好的预测函数。所以一般来说,the training set error is not a good predictor for how well the hypothesis will do on new examples. Hypothesis能很好的拟合training set并不意味着它也能很好的工作在新的数据集上,所以training error不是一个好的判断这个hypothesis是否好的指标(how well the hypothesis will generalize to new examples).
很好的拟合test set并不意味着是一个好的hypothesis

choose the degree of polynomial ----选择以上10个里面的一个model,相当于我们要fit extra sort of parameter----d,这样我们就多了一个另外的参数需要拟合。
通过计算Jtest(Θ),选择值最小的做为选择的模型。但是这并不意味着它会在新鲜的数据上表现良好,因为我们选择它其实是对参数d做的一次拟合,如前面所介绍的(在trainnng set上拟合很好并不意味着在新的数据预测准确),同理,在test set上我们对d做了拟合,并不意味着在新的数据时我们就会预测准确。(our extra parameter d is fit to test set)
那么应该如何来评估我们的hypothesis呢?--将数据集分为三部分:trainning set, cross validation set, test set

我们将我们的data set分为三部分,第一部分用来做为training data,第二部分为Cross validation set(CV),第三部分为test set.(一般的比例为60%,20%,20%)
mcv为我们的CV example的个数,mtest为test example的个数.
那么应该如何来评估我们的hypothesis呢?--计算train/validation/test(generalization) error

如何选择model以及评估我们的hypothesis?--使用cross validation set来选择model

我们使用cross validation set(不是test set)去选择我们的model.
1>通过各个model在trainning set 上的cost function,求出使这些cost function最小的parameters
2> 求出parameters后,计算各个model在cross validation set上的cost function: Jcv(Θ),然后选择Jcv(Θ)最小的那个model.
3> 选择出model后,在test set上评估generalization error,即计算Jtest(Θ).
总结
在实际情况中我们很多人将数据分为training set 和test set, test set既用来选择模型也用来评估预测函数,但这不是一种好的做法
好的做法是将数据分为三部分: training set/ cross validation set/test set .
training set用来计算参数,求出hypothesis;cross validation set用来选择模型;test set用来对选择的模型以及其预测函数做评估。
评估预测函数(3)---Model selection(选择多项式的次数) and Train/validation/test sets的更多相关文章
- 评估预测函数(1)---算法不能达到我们的目的时,Deciding what to try next
在设计机器学习系统时,一些建议与指导,让我们能明白怎么选择一条最合适,最正确的道路. 当我们要开发或者要改进一个机器学习系统时,我们应该接下来做些什么? try smaller sets of fea ...
- 评估预测函数(2)---对hypothesis进行评估
当有多个features时,无法通过图像来评估hypothesis 当我们的hypothesis只有一个features时,可以通过观察它的图像来看它是否overfitting,但是如果我们有多个fe ...
- 斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)
怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也 ...
- 转:机器学习 规则化和模型选择(Regularization and model selection)
规则化和模型选择(Regularization and model selection) 转:http://www.cnblogs.com/jerrylead/archive/2011/03/27/1 ...
- Scikit-learn:模型选择Model selection
http://blog.csdn.net/pipisorry/article/details/52250983 选择合适的estimator 通常机器学习最难的一部分是选择合适的estimator,不 ...
- Spark2 Model selection and tuning 模型选择与调优
Model selection模型选择 ML中的一个重要任务是模型选择,或使用数据为给定任务找到最佳的模型或参数. 这也称为调优. 可以对诸如Logistic回归的单独Estimators进行调整,或 ...
- Bias vs. Variance(2)--regularization and bias/variance,如何选择合适的regularization parameter λ(model selection)
Linear regression with regularization 当我们的λ很大时,hθ(x)≍θ0,是一条直线,会出现underfit:当我们的λ很小时(=0时),即相当于没有做regul ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
- 机器学习 Regularization and model selection
Regularization and model selection 假设我们为了一个学习问题尝试从几个模型中选择一个合适的模型.例如,我们可能用一个多项式回归模型hθ(x)=g(θ0+θ1x+θ2x ...
随机推荐
- snapde的批量数据运算公式
一.snapde基本介绍 Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件:它能打开最大3G大小的CSV文件进行编辑:它运行的速度非常快,反应非常灵敏. 二.snapde批 ...
- 记一次Docker中部署Asp.Net Core 3.0的踩坑过程
最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口.以前的接口依然是使用Asp. ...
- javaNIO核心概念
在java的阻塞IO中使用InputStream和outputStream来进行输入和输出,那么两种流是相互独立使用的,而且每次数据传输都要通过“用户态数据”向“os内核态数据”copy或从“os内核 ...
- Java开发笔记(一百二十一)AWT输入框
前面介绍了文本标签Label,该控件展示的文字是不可编辑的,若要用户在界面上输入文本,就得使用专门的编辑框控件.在AWT的控件家族当中,用作编辑框的有两种控件,分别是单行输入框TextField和多行 ...
- Matrix Cells in Distance Order
Matrix Cells in Distance Order We are given a matrix with R rows and C columns has cells with intege ...
- [高清·非影印] Docker 容器与容器云(第2版)
------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...
- GOF 的23种JAVA常用设计模式总结 03 面向对象七大设计原则
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率.节约软件开发成本和维护成本. 各位代码界的大佬们总结出的七 ...
- 视觉AI风口一触即发,虹软AI沙龙点金深圳
7月26日,虹软AI沙龙在深圳湾科技生态园空间举办.AI沙龙是基于虹软视觉开放平台的开发者交流沙龙,旨在通过分享最新的实战案例,帮助开发者解决技术及落地难题,让技术更贴近实用场景. 本次活动中,深圳市 ...
- 用D3.js画树状图
做项目遇到一个需求,将具有层级关系的词语用树状图的形式展示它们之间的关系,像这样: 或者是这样: 上面的图片只是样例,跟我下面的代码里面用的数据不同 网上有很多这种数据可视化展示的js控件,我这里选择 ...
- Python学习日记(二十四) 继承
继承 什么是继承?就是一个派生类(derived class)继承基类(base class)的字段和方法.一个类可以被多个类继承;在python中,一个类可以继承多个类. 父类可以称为基类和超类,而 ...