基础专题
基础定义
什么是机器学习
李宏毅:很多应用场景都是根据给定输入进行处理后进行输出,其过程可以抽象成一个函数,机器学习就是通过给定大量数据,学习到这样的一个函数。
机器学习的种类
回归(regression):函数的输出是一个标量(scaler)。比如,预测明天温度。
分类(classification):函数输出的是类别(class)。比如,判断邮件是否为垃圾邮件,AlphaGo下围棋(判断 19x19 的个位置要取哪一个)。
结构化学习(structured learning):(参考:大佬笔记)函数输出是一个结构化的数据,比如图片,语句等等。比如,语音识别、机器翻译、句法解析、目标检测
如何找到这个函数
我们的主要目标是根据特定的数据学到一个模型。假设任务是预测天气。
首先定义一个模型,比如最简单的线性模型,明天天气是今天天气的 k 倍+ b。
通过模型得到的结果和真实结果的误差可以进一步计算的到 MAE 或 MSE。
误差表面(error surface):根据不同的超参数,绘制误差。
优化:通过梯度下降等方法找到误差最小的地方。
经验误差
前提:个样本中个样本分类错误
错误率:
精度:
误差(error):实际输出与真实输出的差异
训练集上的误差:训练误差(training error)或经验误差(empirical error)
新样本上的误差:泛化误差(generalization error)
过拟合(over fitting):训练样本自身特点当成泛化规律,模型变得教条
欠拟合(under fitting):未能掌握足够的泛化规律
评估方法
留出法(hold-out)
主要思路:将数据集分成两个部分,一个较大的训练集(用于训练模型)和一个较小的测试集(用于评估模型性能)。
划分比例:训练集(2/3~4/5),测试集(1/3~1/5)
各种样本按照类别采用分层采样,比如正例和反例需要分别分成两部分然后再组成训练集和测试集
单次使用留出法会使结果不稳定(被分到测试集的数据永远不会提供经验),一般会多次使用留出法,每次都进行随机划分。
k 折交叉验证( k-fold cross validation)
主要思路:将整个数据集随机分成k个大小大致相等的子集。每个子集都将成为一次测试集。
k 通常取 10,也可以取 5 或 20
p 次 k 折交叉验证:k 折交叉验证做 p 次求平均。比如 10 次 10 折交叉验证,做了 100 次训练。
留一法(Leave-One-Out,LOO):一种特殊的交叉验证方法,其中k的值等于数据集中的样本数量。
自助法(bootstrapping)
主要思路:在 m 个原始数据中每次挑一个,一共挑 m 次,有放回,每次挑出来都复制一份到训练集中一次,这样训练集中也有 m 个数据。
没被取到的概率:,这一部分就作为验证集。
好处:交叉验证会让训练集变小。自助法不会让训练集变小,适合数据很少的情况。
坏处:训练集的数据分布不同了,因为有重复数据。
性能度量
错误率与精度
可以从离散的数数,和概率角度,两个方向去统计错误率和精读(正确率)
混淆矩阵、查准率、全检率、F1
混淆矩阵(Confusion Matrix)
预测正例
预测反例
真实正例
TP(真正例)
FN(假反例)
真实反例
FP(假正例)
TN(真反例)
精确率
查准率,正确率:预测为正确的,有多少真正确
全检率,召回率:正例中,多少被预测到了
查准率和查全率是一对矛盾的指标。一般来说,查准率高时,查全率往往偏低;二查全率高时,查准率往往偏低。
负正确率:预测为正确的,但其实是错误的,占所有错误的比率,越低越好
特异性:识别为负类的样本的数量,占总的负类样本数量的比值
Fβ_Score:正确率和召回率的一种加权平均,召回率的权重是正确率的β倍
F1_Score:正确率和召回率的调和平均数
Reference
[1] 【機器學習2021】預測本頻道觀看人數 (上) - 機器學習基本概念簡介
[2] 大佬笔记:西瓜书学习笔记(1)--绪论
[3] 大佬笔记:西瓜书学习笔记(2)--模型的评估与选择
最后更新于
这有帮助吗?