第二章 模型评估与选择
2016-07-25 20:28
246 查看
第二章 模型评估与选择
模型评估方法
1. 留出法(hold-out)
方法:直接将数据集D划分为两个互斥的集合,训练集合S和测试集合T,在S上训练模型,用T来评估其测试误差注意:训练/测试集的划分要尽可能保持数据分布的一致性,避免因为数据划分过程引入额外的偏差而对最终结果产生影响
缺点与改进:单次使用留出法得到的估计往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果
实际运用:实际中一般将大约2/3~4/5的样本用于训练,剩余样本用于测试
2. 交叉验证法(cross validation)
方法:先将数据集D划分为k个大小相似的互斥子集.每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到 .然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可以获得k组训练/测试集,从而可以进行k次训练和测试,最终返回的是这k个测试结果的均值实际运用:一般而言k的取值为10,常用的还有5、20等
原理图:
3. 自助法(bootstrapping)
问题引出:我们希望评估的是用D训练出来的模型,但是留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差,为此提出自助法.方法:它以自助采样(bootstrap sampling)为基础.给定包含m个样本的数据集D,我们对它进行采样产生数据集 D′:每次随机从D中挑选出一个样本,将其拷贝放入D′, 然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采样到;这个过程重复执行m次后,我们就得到可包含m个样本数据的数据集D′,这就是自助采样的结果.样本在m次采样中始终不被采到到概率为
limm→∞(1−1m)m→1e
由此可知通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D′中.于是我们可将D′ 用作训练集,D∖D′用作测试集.
优缺点:自助法在数据集较小,难以有效划分训练/测试集时很有用,但是,自助法改变了初始数据集的分布,这会引入估计偏差,所以在数据量足够时,一般采用留出法和交叉验证法.
性能度量
1. 错误率(error rate)与精度(accuracy)
错误率定义:E(f;D)=1m∑i=1mI(f(xi)≠yi)
精度定义:
acc(f;D)=1m∑i=1mI(f(xi)=yi)=1−E(f;D)
2. 准确率(precision)和召回率(recall)
问题引出:在现实生活,比如信息检索中,我们往往会关心”检索出的信息中有多少比例是用户感兴趣的“,”用户感兴趣的信息中有多少被检索出来了“,准确率和召回率则比较适用于此类需求的性能度量绘制如下混淆矩阵(confusion matrix)来进一步定义相关概念
准确率定义:
Precision=TPTP+FP
召回率定义:
Recall=TPTP+FN
集合表示 | 形象化解释 |
---|---|
准确率与召回率之间的权衡可以使用PR曲线来衡量 |
---|
F1度量定义:
F1=2×Precision×RecallPrecision+Recall
F1是基于准确率和召回率的调和平均定义的
在一些应用中,对准确率和召回率的重视程度不同,例如在商品推销系统中,为了尽可能少打扰用户,更希望推荐内容是用户感兴趣的,此时准确率更重要.而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时召回率比较重要.
将F1一般化可得到Fβ的定义:
Fβ=(1+β2)×Precision×Recall(β2×Precision)+Recall
其中β=1时退化为标准的F1,β>1时对准确率有更大影响,β<1时对召回率有更大影响
3. ROC 与AUC
ROC Curve: 在统计中,”受试者工作特征”(receiver operating characteristic),是一幅用于描述在不同的阈值下二分类系统的性能表现的图。该图的横坐标为false positive rate(FPR),纵坐标为true positive rate (TPR),随着阈值的变化可得到一系列坐标点.TPR的定义:
TPR=TPTP+FN
FPR的定义:
FPR=FPFP+TN
AUC: Area under the curve 可通过对ROC曲线下各部分的面积求和而得
4. 期望值分析框架
Confusion Matrix
[TruePositiveFalsePostiveFalseNegativeTrueNegative]
Cost Matrix
[BenefitTPCostFPCostFNBenefitTN]
Expected_Profit=TruePositive×BenefitTP+FalseNegative×CostFN+FalsePostive×CostFP+TrueNegative×BenefitTN
5. 偏差与方差
Error=Bias+Variance+Noise训练集中包含了一系列的点(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn),我们假定存在一个函数y=f(x)+ϵ,其中的ϵ的均值为0方差为σ2.我们需要找到一个函数f̂ (x)使它尽可能地毕竟函数f(x).
为此我们需要最小化(y−f̂ (x))2,对这个误差的期望进行分解可得:
E[y−f̂ (x)2]=Bias[f̂ (x)]2+Var[f̂ (x)]+σ2
其中:
Bias[f̂ (x)]=E[f̂ (x)−f(x)]
Var[f̂ (x)]=E[f̂ (x)−E[f̂ (x)]2]
偏差度量了学习算法的期望预测与实际结果的偏离程度,即刻画了学习算法本身的拟合能力
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
噪声则表达了当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度
Bias-Variance Dilemma |
---|
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- #ML-SDN
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- Tensorflow 杂记
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误