机器学习:模型估计与选择(一)

1:提出问题

  • 学习器在训练集上的误差成为“训练误差”或“经验误差”,在新样本上的误差成为“泛化误差”,显然我们希望得到泛化误差小的学习器,然而,我们并不知道新样本,实际能做的是努力是经验误差最小化,但实际情况下,训练误差很小、在训练集上表现很好的学习器,未必在新样本上表现好,一般无法避免过度拟合现象。那么问题来了:我们无法直接获得泛化误差,而训练误差又由于过度拟合现象的存在不适合作为标准,那么在现实中,我们如何进行模型选择和评估?

2:评估方法

  • 我们可以通过实验测试来对学习器的泛化误差进行评估并进而作出选择,为此需要一个“测试集”测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似。测试集应该尽可能与训练集互斥,即测试集尽量不再训练集中出现、未在训练过程中被使用过。
2.1:如何选择测试集
  • 留出法:
     将数据集划分为两个互斥的集合,其中一个集合作为训练集,另一个作为测试集。单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果,常见的做法时将大约2/3~4/5的样本用于训练,剩余样本用于测试。
  • 交叉验证法
     先将数据集划分未k个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,然后使用K-1个子集的并集作为训练集,余下的那个子集作为测试集。交叉验证法评估结果的稳定性和保真性在很大程度上却取决于k值。
    在这里插入图片描述
  • 自助法
    每次随机从样本数据中挑选一个样本放入训练样本,然后将该样本放回初始样本集,使得该样本下次采样时仍有可能被采到,这个过程重复m次,我们就得到包含m个样本的训练样本。初始样本中的某些样本会在训练样本中出现多次,但另一部分样本则不会出现,样本在m次采样中始终不被采到的概率为: lim ⁡ m → ∞ ( 1 − 1 m ) m ≈ 1 e = 0.368 \lim_{m\rightarrow \infty }\left ( 1-\frac{1}{m}{} \right )^{m}\approx \frac{1}{e}= 0.368 mlim(1m1)me1=0.368
    初始训练集中约有36.8%的样本为出现在采样数据集中,可以u把采样数据集作为训练集,初始数据集减去采样数据集作为测试集。

3: 性能度量

性能度量用于衡量模型泛化能力的评价标准,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评价结果,这意味着模型的"好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求。

  • 错误率与精度
    对于样本集D,分类错误率定义为: E ( f ; D ) = 1 m ∑ i = 1 m ∏ ( f ( x i ) ≠ y i ) E\left ( f;D \right )= \frac{1}{m}\sum_{i=1}^{m}\prod\left ( f\left ( x_{i} \right )\neq y_{i} \right ) E(f;D)=m1i=1m(f(xi)̸=yi)
    精度则定义为: a c c ( f ; D ) = 1 m ∑ i = 1 m ∏ ( f ( x i = y i ) ) acc\left ( f;D \right )= \frac{1}{m}\sum_{i=1}^{m}\prod \left ( f\left ( x_{i}= y_{i} \right )\right ) acc(f;D)=m1i=1m(f(xi=yi))
    • 查准率、查全率与F1
      假设样本有一类别R,查准率是类别R的样本数中被正确识别出来为R类所占的比例;查全率为识别出来为R类的样本中中实际为R类所占的比例;请注意它们之间的区别。查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;查全率高时,查准率往往偏低。以查全率为横轴、查准率为纵轴,就会得到P-R曲线。如果一个学习器的P-R曲线被另一个学习器的P-R 曲线完全包住,则可以认为后者的性能优于前者。为了平衡查全率和查准率的平衡,人们使用了F1度量:
      在这里插入图片描述
  • ROC曲线
    很多学习器为测试样本产生一个实值或概率预测,然后将这个预测值于一个分类阀值进行比较,若大于阀值则分为正类,否则为反类。我们可以根据这个实值或预测概率预测结果,对那个测试样本进行排序,按此顺序逐个将样本作为正例进行测试,每次计算出“真正率”和“假正率”,分别以它们为横纵坐标作图得到ROC曲线。
    在这里插入图片描述
    若一个学习器的ROC曲线被另一个学习器的曲线完全包住,则认为后者的性能优于前者,若两个学习器的ROC曲线发生交叉,则进行比较ROC曲线下的面积AUG:
    A U G = 1 2 ∑ i − 1 m − 1 ( x i + 1 − x i ) ⋅ ( y i + y i + 1 ) AUG=\frac{1}{2}\sum_{i-1}^{m-1}\left ( x_{i+1}-x_{i} \right )\cdot \left ( y_{i} + y_{i+1}\right ) AUG=21i1m1(xi+1xi)(yi+yi+1)
  • 代价敏感错误率于代价曲线
    首先为什么设立代价?设想在医疗诊断中,错误的把患者诊断为健康人与错误的把健康人诊断为患者看来都是犯了一次错误,但后者的影响时增加了进一步检查的麻烦,前者的后果却可能丧失拯救生命的最佳时机。以二分类任务为例,我们根据任务的领域知识设定一个代价矩阵, c o s t i j cost_{ij} costij表示将第i类样本预测为第j类样本的代价。
    在这里插入图片描述
    在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而代价曲线则可达到该目的,代价曲线图的横轴是取值为[0,1]的正例概率代价为:
    P ( + ) c o s t = p × c o s t 01 p × c o s t 01 ∔ ( 1 − p ) × c o s t 10 P\left ( + \right )cost= \frac{p\times cost_{01}}{p\times cost_{01}\dotplus \left ( 1-p \right )\times cost_{10}} P(+)cost=p×cost01(1p)×cost10p×cost01
    其中p是样例为正例的概率,纵轴是取值为[0,1]的归一化代价:
    c o s t n o r m = F N R × p × c o s t 01 + F P R × ( 1 − p ) × c o s t 10 p × c o s t 01 ∔ ( 1 − p ) × c o s t 10 cost_{norm} = \frac{FNR\times p\times cost_{01}+FPR\times \left ( 1-p \right )\times cost_{10}}{p\times cost_{01}\dotplus \left ( 1-p \right )\times cost_{10}} costnorm=p×cost01(1p)×cost10FNR×p×cost01+FPR×(1p)×cost10
    FPR是假正例率,FNR=1-TPR是假反例率,代价曲线的绘制为:ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;将ROC曲线上的每一个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值