吃瓜日记 Task1

本文是《机器学习》的学习笔记,介绍了机器学习的基本概念,如模型的过拟合和欠拟合,以及模型评估的度量标准,包括回归和分类问题的评价指标。讨论了训练集和测试集的划分,以及交叉验证等模型选择方法。
摘要由CSDN通过智能技术生成

目录

前言

一、机器学习的定义

二、机器学习中的一些基础概念

三、模型评估与选择

3.1.过拟合、欠拟合、方差、偏差

3.2拟合方法

3.3度量方法

3.2.1回归问题评价指标

3.2.2分类问题评价指标

3.4比较检验

其他参考



前言

本文为周志华老师的《机器学习》(西瓜书)和《机器学习公式详解》(南瓜书)第一章和第二章的学习笔记。


一、机器学习的定义

西瓜书引用了Mitchell在《Matchine Learning》中的经典定义,书中的翻译有点晦涩,还是看英文原句比较舒适:

A computer program is said to learn from experience E with respect to some task T and some performance measure P,if its performance on T ,as measured by P,improves with experience E.

自己手动翻译一遍:

对于一个计算机程序,如果它利用经验E提升了它在任务T上的表现(performance,用P来衡量),那么可以认为这个程序从经验E中学习到了关于任务T和P的知识。


本书认为“机器学习是研究‘学习算法’的学问”。我们研究机器学习算法,就是在研究如何让模型从经验数据中快速学习到有效的信息,提升在目标任务上的性能。

二、机器学习中的一些基础概念

数据集是由m条样本(instance/sample)组成的集合,每条样本有d个属性,每个属性可能取不同的值,属性可能是离散的,也可能是连续的,每个属性作为一个坐标轴,就构成了一个d维空间,称作样本空间/属性空间。每个样本的属性构成一个特征空间中的向量,称作特征向量。

将数据集划分为训练集和测试集,让模型在训练集上学习,把模型学习到的潜在规律称作假设,而真正的规律成为ground-truth(GT),让模型学习到的假设更好地逼近GT,就是机器学习的目标。

通常来说,模型预测的目标是有标签的,我们称之为有监督的学习。将一个样本的特征输入到模型中,让模型预测标签,根据标签是离散值还是连续值,我们可以将机器学习任务分为分类任务和回归任务两种。但事实上,有很多情况下,数据是无标签的,例如聚类任务,我们称之为无监督学习。还有一些情况下,我们只有一部分训练数据是有标签的,另一部分数据由于人工成本或其他原因,没有对应的标注,同时使用有标签的数据和无标签的数据进行训练,我们称之为半监督学习。

利用不同的属性,模型可以学到多种不同的假设,而训练的目标就是希望模型能够尽可能地找到与GT相符的假设。但由于训练集是有限的,甚至可能是有偏的,当模型在尽可能地拟合训练集时,很有可能会出现过拟合的状况,即在训练集上表现很好,但在测试集上差强人意。这时候我们认为这个模型的泛化性不好。我们可以用一个函数f来表示我们的模型:y=f(x),x是输入的属性,f是模型,y是模型的输出。输入测试集的每个样本的属性,我们可以得到对应的预测结果。通过检验模型在这些未知样本上的表现,我们可以评估模型的泛化能力。

在训练和选择模型时,我们可以制定一些目标或规则来约束模型,合理的规则能够帮助我们得到更好的模型。奥卡姆剃刀原则告诉我们,当有些时候你无从抉择是,通常是越简单的越好,但对于机器学习,到底什么是简单?NFL没有免费的午餐定理,表明了没有在任何领域都绝对优越的算法。在实际工程中,我们要根据实际情况来选取最合适的算法来解决问题。

三、模型评估与选择

3.1.过拟合、欠拟合、方差、偏差

上面我们提到了模型在训练集上表现很好,但在测试集上表现不好时,我们认为模型过拟合(overfitting)。而欠拟合(underfitting)是指模型在训练集上表现就不够好,通常是由于模型容量过小导致的。对于一个模型,假设空间往往决定了模型容量的大小,当模型容量过低时,会发生欠拟合,而模型容量过大时,会发生过拟合。

对于过拟合和欠拟合的问题,可以通过方差、偏差的角度去理解,选择模型,通常是要在方差和偏差的trad-off之前寻找一个平衡。

如果模型不能够拟合training data,则说明偏差较大,欠拟合;如果模型能够拟合training data,但是不能拟合testing data,说明有较大的方差,就是过拟合的状态。 参考【学习笔记】-李宏毅课程--方差和偏差(variance and bias) - 知乎

3.2拟合方法

  1. 留出法:将数据集划分为互斥的两个部分,训练集和测试集。通常训练集保留2/3~4/5的样本用于训练。不同的划分方式会导致不同的结果,所以通常要划分很多次,进行训练,再去平均结果。
  2. K-fold交叉验证(CV):将数据集划分为k个子集,每次取一个子集作为验证集,其他作为测试集,通常来说cv评估结果最好的模型被认为是泛化性比较好的模型,cv具有防止过拟合的作用。
  3. 自助法bootstrapping:从数据集中,多次有放回地采样,当抽取数量足够多时,大约有36.8%的数据不会被抽取到,没被抽取到的数据就作为测试集。几个比较容易混淆的概念:快速理解bootstrap,bagging,boosting-三个概念_猫二哥的博客-CSDN博客
  4. 调参与最终模型:除了选择算法之外,还要调节参数,由于可调参数比较多,通常在一个有限的范围内搜索最优参数。选定算法和参数之后,要在全部数据集上训练,得到的模型作为最终模型。

3.3度量方法

不同的评估指标往往会导致不同的评判结果,选择合适的评价指标,对于实际任务来说是很重要的。sklearn里已经实现了很多种度量方法:3.3. Metrics and scoring: quantifying the quality of predictions — scikit-learn 1.2.1 documentation

3.2.1回归问题评价指标

通常有MSE、MAE、R^2等;参考:回归的评估指标 - 知乎

3.2.2分类问题评价指标

对于分类问题,通常可以用accuracy准确率来评估,表示分类正确的样本所占比例。

对于二分类问题,我们可以把结果分为:TP,FP,TN,FN四类,用混淆矩阵来表示。

accuracy:全部数据中预测对的比例

precision:精准率,所有被预测为正的样本有多少为正。 当负样本被预测为正的代价很高时,要求精准率高。

 recall:召回率,所有正例中被预测为正的比例。

 F1-Score综合平衡了Precision和Recall:

其他指标:ROC曲线、AUC面积、代价敏感错误率与代价曲线等。

在语音唤醒任务中,我们通常用唤醒率FAR错误接受率和FRR错误拒绝率来计算出曲线,选择合适的阈值。

 参考:

机器学习的评价指标(一):Accuracy、Precision、Recall、F1 Score - 知乎
https://www.cnblogs.com/HOI-Yzy/p/16578256.html

3.4比较检验

使用统计学中假设检验的方法,来验证模型的性能,对比不同的模型。

略。


其他参考

 
百度百科-验证

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值