您的位置:首页 > 大数据 > 人工智能

评估预测函数(3)---Model selection(选择多项式的次数) and Train/validation/test sets

2015-12-15 22:03 561 查看
假设我们现在想要知道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用来对选择的模型以及其预测函数做评估。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: