手撕机器学习(1)-绪论

目录

0 温馨提示

1 绪论

1-1 机器学习的基本术语

2 模型的评估与选择

2-1 误差与过拟合

 2-2 评估方法

2-3 训练集和测试集的划分

2-3-1 留出法

2-3-2 交叉验证法

2-4 调参

2-5 性能度量

2-5-1 最常见的性能度量

2-5-2 差准率/查全率/F1

2-5-3 ROC和AUC

2-5-4 代价敏感错误率和代价曲线

参考

0 温馨提示

        本博客适用于了解了一些最基础的数据分析,对机器学习有一个最初的概念的学习,即此博客不会过多的去从科普的角度去讲解,反而是从较为学术的方面去学习。

1 绪论

1-1 机器学习的基本术语

        样本:每一条记录或者说我们研究具体的对象

        数据集:所有样本的集合

        特征:样本所表现出来的特点或者抽象出来的一些属性

        特征向量:由特征所组成的集合形成的向量

        维数:特征向量所包含元素的个数,即有多少个特征就有多少维

        训练集:训练用的集合

        测试集:测试集用的集合

        分类问题:对样本进行分类,如根据年龄将人分为小孩,青年和老人

        回归问题:对样本进行预测,如根据年龄判断这个人下一个阶段是什么

        监督学习:将样本打上标签在进行机器学习任务

        无监督学习:没有标签,即让机器学习自己分类,常见有聚类和关联

2 模型的评估与选择

2-1 误差与过拟合

        误差即为:让机器学习之后的值和真实的值之间的差异。不言而喻,在训练集上的误差为训练误差,在测试集上的误差为测试误差。

        然而,当学习器把训练集学得“太好”的时候,即把一些训练样本的自身特点当做了普遍特征,此时即为:过拟合。同时也有学习能力不足的情况,即训练集的基本特征都没有学习出来,此时即为:欠拟合。

 2-2 评估方法

        我们常常在训练集上进行机器学习的训练,在测试集上进行评估这个方法的能力。即在训练集上的学习就相当于平时的练习,测试集上的评估就相当于是期末的测试。如果只会平时的练习题而不会期末考试,就相当于不会举一反三,此时就是过拟合,即只会训练集上的东西。如果平时的练习题都不会,期末考试也不会,此时就是欠拟合,即并没有学习成功。

2-3 训练集和测试集的划分
2-3-1 留出法

        将数据集D划分为两个互斥的集合,一个作为训练集S,一个作为测试集T,满足D=S∪T且S∩T=∅,常见的划分为:大约2/3-4/5的样本用作训练,剩下的用作测试。需要注意的是:训练/测试集的划分要尽可能保持数据分布的一致性,以避免由于分布的差异引入额外的偏差,常见的做法是采取分层抽样。同时,由于划分的随机性,单次的留出法结果往往不够稳定,一般要采用若干次随机划分,重复实验取平均值的做法。

2-3-2 交叉验证法

        将数据集D划分为k个大小相同的互斥子集,满足D=D1∪D2∪...∪Dk,Di∩Dj=∅(i≠j),同样地尽可能保持数据分布的一致性,即采用分层抽样的方法获得这些子集。交叉验证法的思想是:每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就有K种训练集/测试集划分的情况,从而可进行k次训练和测试,最终返回k次测试结果的均值。交叉验证法也称“k折交叉验证”,k最常用的取值是10,下图给出了10折交叉验证的示意图。

2-4 调参

        大多数学习算法都有些参数(parameter) 需要设定,参数配置不同,学得模型的性能往往有显著差别,这就是通常所说的"参数调节"或简称"调参"。

2-5 性能度量

2-5-1 最常见的性能度量

        在回归任务中,最常见的是利用均方误差。

        在分类任务中,则是看预测正确的个数占总数的多少,分类错误的则是由错误率反应,分类正确的则是由精度表示。

2-5-2 差准率/查全率/F1

        当在二分类时只关心正例的时候,可以利用查准率和查全率。例如:在推荐系统中,我们只关心推送给用户的内容用户是否感兴趣(即查准率),或者说所有用户感兴趣的内容我们推送出来了多少(即查全率)。在二分类问题中,有:

real=1real=0
predict=1TPFP
predict=0FNTN

        TP: 预测为1(Positive),实际也为1(Truth-预测对了)
        TN: 预测为0(Negative),实际也为0(Truth-预测对了)
        FP: 预测为1(Positive),实际为0(False-预测错了)
        FN: 预测为0(Negative),实际为1(False-预测错了)

        精度定义为:Accuracy = (预测正确的样本数)/(总样本数)=(TP+TN)/(TP+TN+FP+FN)

        查准率定义为:Precision = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP)

        查全率定义为:Recall = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)

        将p-r结合起来使用便是p-r曲线。这个博客讲的比较清楚,参考文章:

PR曲线 可算是明白了 precision recall曲线_precision recall curve-CSDN博客

        若一个学习器A的P-R曲线被另一个学习器B的P-R曲线完全包住,则称:B的性能优于A。若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。但一般来说,曲线下的面积是很难进行估算的,所以衍生出了“平衡点”(Break-Event Point,简称BEP),即当P=R时的取值,平衡点的取值越高,性能更优。

        P和R指标有时会出现矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure,又称F-Score。F-Measure是P和R的加权调和平均,即:

        特别地,当β=1时,也就是常见的F1度量,是P和R的调和平均,当F1较高时,模型的性能越好。

2-5-3 ROC和AUC

        学习器对测试样本的评估结果一般为一个实值或概率,设定一个阈值,大于阈值为正例,小于阈值为负例,因此这个实值的好坏直接决定了学习器的泛化性能,若将这些实值排序,则排序的好坏决定了学习器的性能高低。ROC曲线正是从这个角度出发来研究学习器的泛化性能,ROC曲线与P-R曲线十分类似,都是按照排序的顺序逐一按照正例预测,不同的是ROC曲线以“真正例率”(True Positive Rate,简称TPR)为横轴,纵轴为“假正例率”(False Positive Rate,简称FPR),ROC偏重研究基于测试样本评估值的排序好坏。

        具体可参考博客:

机器学习常用评价指标:ACC、AUC、ROC曲线_acc auc-CSDN博客

        可以得知:当FN=0时,TN也必须0,反之也成立,我们可以画一个队列,试着使用不同的截断点(即阈值)去分割队列,来分析曲线的形状,(0,0)表示将所有的样本预测为负例,(1,1)则表示将所有的样本预测为正例,(0,1)表示正例全部出现在负例之前的理想情况,(1,0)则表示负例全部出现在正例之前的最差情况。

        同样地,进行模型的性能比较时,若一个学习器A的ROC曲线被另一个学习器B的ROC曲线完全包住,则称B的性能优于A。若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。ROC曲线下的面积定义为AUC(Area Uder ROC Curve),不同于P-R的是,这里的AUC是可估算的,即AOC曲线下每一个小矩形的面积之和。易知:AUC越大,证明排序的质量越好,AUC为1时,证明所有正例排在了负例的前面,AUC为0时,所有的负例排在了正例的前面。

2-5-4 代价敏感错误率和代价曲线

        上面的方法中,将学习器的犯错同等对待,但在现实生活中,将正例预测成假例与将假例预测成正例的代价常常是不一样的,例如:将无疾病-->有疾病只是增多了检查,但有疾病-->无疾病却是增加了生命危险。以二分类为例,由此引入了“代价矩阵”(cost matrix)。

        具体可以参考博客:

代价敏感错误率与代价曲线_代价敏感错误率中两个竖线-CSDN博客

参考

Machine-learning-learning-notes/周志华《Machine Learning》学习笔记(2)--性能度量.md at master · Vay-keen/Machine-learning-learning-notes (github.com)

  • 30
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值