美文网首页
交叉验证、模型评估

交叉验证、模型评估

作者: 高永峰_GYF | 来源:发表于2019-02-21 15:26 被阅读0次

1 模型的选择(选超参数)

交叉验证(Cross validation),用于防止模型过于复杂而引起的过拟合,有时亦称循环估计。

它是一种统计学上将数据样本切割成较小子集的实用方法,可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 

一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。

交叉验证一般要尽量满足:

1)训练集的比例通常大于一半。比如:70%

2)训练集和测试集要均匀抽样。

验证集的交叉验证是用于模型选取过程中的,而不是模型训练过程中的!

如何在一些模型中选择一个最好的模型?(确定超参数)

1 多项式回归模型中  y = a0 + a1 x + a2 x^2 + a3 x^3 + ... + an x^n ,  我们知道模型越复杂即n越高,拟合效果越好。但是未必是一个好的分类模型,因为模型过拟合了。那么如何确定m的值呢。

2 SVM中参数C的确定。

3 KNN算法中K的选取。

交叉验证就是很好的用于这些问题,这些模型中参数寻优的问题。

如何交叉验证?这里主要介绍K交叉验证。

交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set)。首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。

撸代码举例:

平均方差越低越好

上面整体上看,模型表现很差,换一种看一下效果!

选择12~18的k值最好。高过18之后,准确率开始下降

scoring='accuracy'  一般来说准确率(accuracy)会用于判断分类(Classification)模型的好坏。

换KNN模型

平均方差越低越好,因此选择13~18左右的K值会最好

scoring='mean_squared_error' 一般来说平均方差(Mean squared error)会用于判断回归(Regression)模型的好坏。

还有其他模型,请自行多试对比,力气活。选取合适的模型。主要思想就是采用多次数据分割的思想进行交叉验证,用每次分割的得分均值选取合适的模型,以便接下来训练。

下面是通过可视化了解模型的训练过程,判断模型是否过拟合,并进行参数选择

2 模型过拟合-学习曲线

学习曲线(learning curve)可以帮我们判定我们的模型现在所处的状态。我们以样本数为横坐标,训练和交叉验证集上的错误率作为纵坐标。

查看模型是否过拟合: 随着样本量增加,准确率在训练集上得分比较高,交叉验证集上得分较小。

对过拟合而言,通常以下策略对结果优化是有用的:

1)重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的。

2)增大数据量。调整训练数据占总数据的比例或者复制原有数据并加上随机噪声或者根据当前数据集估计数据分布参数,使用该分布产生更多数据等。

3)采用正则化方法。但是在机器学习中一般使用L2正则。

4)做一下feature selection,挑出较好的feature的subset来做training。

5)Early stopping便是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。对模型进行训练的过程即是对模型的参数进行学习更新的过程,这个参数学习的过程往往会用到一些迭代方法,如梯度下降(Gradient descent)学习算法。这样可以有效阻止过拟合的发生,因为过拟合本质上就是对自身特点过度地学习。

而对于欠拟合而言:

需要更多的feature

更复杂的模型来提高准确度

200的时候存在一些过拟合  

3 分类性能度量指标 ROC 

ROC (Receiver Operating Characteristic) 曲线和 AUC (Area Under the Curve) 值常被用来评价一个二值分类器 (binary classifier) 的优劣。

ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一个画在二维平面上的曲线——ROC curve。平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。

针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况.

(1)若一个实例是正类并且被预测为正类,即为真正类(True Postive TP)

(2)若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN)

(3)若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP)

(4)若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN)

TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。TPR=TP/(TP+FN)

FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率。FPR=FP/(FP+TN)

横轴FPR:1-TNR,1-Specificity,FPR越大,预测正类中实际负类越多。纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。

理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。

4 模型评估的方法: ROC,AUC,RMSE等指标

精确度(Precision): P = TP/(TP+FP) ; 反映了被分类器 判定的正例中 真正的正例样本 的比重

准确率(Accuracy)A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN); 反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负

召回率(Recall),也称为 True Positive Rate:R = TP/(TP+FN) = 1 - FN/T; 反映了被正确判定的正例占总的正例的比重

F1值:F = 2 * 召回率 * 准确率 / (召回率+准确率);这就是传统上通常说的F1 measure。

参考

机器学习练习(三)——交叉验证Cross-validation https://blog.csdn.net/yueguizhilin/article/details/77711789

sklearn中的交叉验证与参数选择 https://blog.csdn.net/u014248127/article/details/78899195

交叉验证与学习曲线

https://blog.csdn.net/hyq3235356/article/details/78482437

相关文章

  • 交叉验证、模型评估

    1 模型的选择(选超参数) 交叉验证(Cross validation),用于防止模型过于复杂而引起的过拟合,有时...

  • 7.cross_validation_and_grid_sear

    1.模型的评估与参数调优 1.1交叉验证/Cross - validation 1.1.1 K折交叉验证 1.1....

  • R 交叉验证①

    什么是交叉验证?在机器学习中,交叉验证是一种重新采样的方法,用于模型评估,以避免在同一数据集上测试模型。交叉验证的...

  • 交叉验证

    交叉验证不会返回一个模型,在调用 cross_val_score 时,内部会构建多个模型,但交叉验证的目的只是评估...

  • 复习 - 模型测试

    一、模型测试的API总结 1、分类算法评估方式 2、回归算法评估方式 二、分类模型测试 交叉验证:(Cross V...

  • 8. 模型的选择与调优

    交叉验证 网格搜索 交叉验证:为了让备评估的模型更加确信准确 *超参数搜索-网格搜索: 网格搜索:通常情况下,有很...

  • 机器学习笔记(一)——交叉验证

    交叉验证问题 什么是交叉验证     交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,...

  • cross validation - 机器学习中的交叉验证法探究

    交叉验证是什么? Cross Validation是一种评估模型性能的重要方法,主要用于在多个模型中(不同种类模型...

  • 81-mlr3初体验

    1、创建任务 2、选择学习器 3、拆分训练集和测试集 4、训练模型 5、预测 6、模型评估 7、交叉验证

  • 深度学习知识点汇总-机器学习基础(15)

    2.15 交叉验证和k折交叉验证 交叉验证是为了提高模型的泛华能力。 方法主要有: 留一交叉验证 k折交叉验证 这...

网友评论

      本文标题:交叉验证、模型评估

      本文链接:https://www.haomeiwen.com/subject/zznyxqtx.html