假设我们现在想要知道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. 评估预测函数(1)---算法不能达到我们的目的时,Deciding what to try next

    在设计机器学习系统时,一些建议与指导,让我们能明白怎么选择一条最合适,最正确的道路. 当我们要开发或者要改进一个机器学习系统时,我们应该接下来做些什么? try smaller sets of fea ...

  2. 评估预测函数(2)---对hypothesis进行评估

    当有多个features时,无法通过图像来评估hypothesis 当我们的hypothesis只有一个features时,可以通过观察它的图像来看它是否overfitting,但是如果我们有多个fe ...

  3. 斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)

    怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也 ...

  4. 转:机器学习 规则化和模型选择(Regularization and model selection)

    规则化和模型选择(Regularization and model selection) 转:http://www.cnblogs.com/jerrylead/archive/2011/03/27/1 ...

  5. Scikit-learn:模型选择Model selection

    http://blog.csdn.net/pipisorry/article/details/52250983 选择合适的estimator 通常机器学习最难的一部分是选择合适的estimator,不 ...

  6. Spark2 Model selection and tuning 模型选择与调优

    Model selection模型选择 ML中的一个重要任务是模型选择,或使用数据为给定任务找到最佳的模型或参数. 这也称为调优. 可以对诸如Logistic回归的单独Estimators进行调整,或 ...

  7. Bias vs. Variance(2)--regularization and bias/variance,如何选择合适的regularization parameter λ(model selection)

    Linear regression with regularization 当我们的λ很大时,hθ(x)≍θ0,是一条直线,会出现underfit:当我们的λ很小时(=0时),即相当于没有做regul ...

  8. Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection

    网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型 ...

  9. 机器学习 Regularization and model selection

    Regularization and model selection 假设我们为了一个学习问题尝试从几个模型中选择一个合适的模型.例如,我们可能用一个多项式回归模型hθ(x)=g(θ0+θ1x+θ2x ...

随机推荐

  1. vscode插件Power Mode

    Power Mode官网 设置里添加 "powermode.enabled": true, "powermode.presets": "flames& ...

  2. Influx Sql系列教程四:series/point/tag/field

    influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field:而series则是一个measurement中保存策略和tag集 ...

  3. Coursera,Udacity,Edx 课程列表(更新ing)

    Coursera,Udacity,Edx 课程列表(更新ing) Coursera有很多特别好的课程,平时没有机会听到国外大牛的课程,通过Coursera算是可以弥补一下吧,国外的课程普遍比国内的老师 ...

  4. Java开发笔记(一百二十六)Swing的窗口

    前面介绍了AWT界面编程的若干技术,在编码实践的时候,会发现AWT用起来甚是别扭,它的毛病包括但不限于下列几点:1.对中文的支持不好,要想在界面上正常显示汉字,还得在运行时指定额外的运行参数“-Dfi ...

  5. 二次剩余定理及Cipolla算法入门到自闭

    二次剩余定义: 在维基百科中,是这样说的:如果q等于一个数的平方模 n,则q为模 n 意义下的二次剩余.例如:x2≡n(mod p).否则,则q为模n意义下的二次非剩余. Cipolla算法:一个解决 ...

  6. 2. RDD编程

    2.1 编程模型 在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换.经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,act ...

  7. 终于明白六大类UML类图关系了

    UML,全称Unified Modeling Language,统一建模语言.而UML图分为用例图.类图.对象图.状态图.活动图.时序图.协作图.构件图.部署图等9种图. 在面向对象语言中,我们经常看 ...

  8. Luogu4705 玩游戏 分治FFT

    传送门 \(\begin{align*} Ans_k &= \sum\limits_{i=1}^n\sum\limits_{j=1}^m (a_i + b_j)^k \\ &= \su ...

  9. extend Thread 和 implements Runnable

    原文地址:extend Thread 和 implements Runnable 一个Thread的实例只能产生一个线程 or: 同一实例(Runnable实例)的多个线程 look: public ...

  10. js实现用户输入日期算出是今年的第几天

    const rs = require("readline-sync"); // 根据用户输入的年月日输出第几天 // 欢迎 console.log("欢迎来到查询系统&q ...