出处:
Datawhale吃瓜教程(https://www.bilibili.com/video/BV1Mh411e7VU)
案例:
水果摊旁,挑个根蒂蜷缩,敲起来声音浊响的青绿西瓜。期待是皮薄后瓤甜的瓜
机器学习
研究如何通过计算的手段,利用经验来改善系统自身的性能。
学习算法
在计算机上从数据中产生模型的算法
模型
泛指从数据中学到的结果
机器学习分类
根据训练数据是否拥有标记信息
监督学习(supervised learning)
:分类、回归非监督学习(unsupervised learning)
:聚类数据
数据集(data set)
:记录的集合样本(sample)/示例(instance)
:单条记录【一个示例可以称为一个"特征向量(feature vector)"】属性(attribute)/特征(feature)
:反映事件或对象在某方面的表现或性质的事项,例如:色泽、根蒂、敲声属性值
:属性上的取值维度(dimensionality)
:单个样本所包含的属性个数学习
通过对训练集 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } \{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\} {(x1,y1),(x2,y2),...,(xm,ym)}进行学习,建立一个从输入空间 X \mathcal{X} X到输出空间 Y \mathcal{Y} Y的映射 f : X → Y f : \mathcal{X} \rightarrow \mathcal{Y} f:X→Y
学习/训练
:从数据中学得模型的过程
训练数据(training data)
:训练过程中使用的数据
训练样本
训练集
:训练样本的集合
学习器
:模型
样例(example)
:拥有标记信息【有结果】的示例
分类(classification)
:预测的结果是离散值。【好瓜、坏瓜】
二分类(binary classification)
:只涉及两个分类。 Y = { − 1 , + 1 } \mathcal{Y}=\{-1,+1\} Y={−1,+1}或 { 0 , 1 } \{0,1\} {0,1}多分类(multi-class classificaiton)
: ∣ Y ∣ > 2 |\mathcal{Y}|>2 ∣Y∣>2回归(regression)
:预测的结果是连续的。 Y = R \mathcal{Y}=\mathbb{R} Y=R
测试
测试(testing)
:学到模型后,使用其进行预测的过程称为“测试”测试样本(testing sample)
:被预测的样本验证集(validation set)
:评估测试的数据集泛化(generalization)能力
:模型在新样本的能力归纳(induction)
演绎(deduction)
版本空间(version space)
与训练集一直的“假设集合”
【模型都有归纳偏好】
错误率(error rate):分类错误的样本数a占样本总数m的比例
E = a m E = \frac{a}{m} E=ma
精度(accuracy): 1 − E 1-E 1−E
误差(error):模型的实际预测输出与样本的真实输出之间的差异
训练误差(training error)/经验误差(empirical error)
:模型在训练集上的误差泛化误差(generalization error)
:在新样本上的误差【我们希望的是泛化误差最小化,但是在新样本不确定的情况下,我们努力使经验误差最小化】
过拟合(overfitting)
:经验误差很小,但泛化误差很大(将训练样本自身的性质作为了一般性质)。过拟合只能缓解欠拟合(underfitting)
:经验误差很大(对训练样本的一般性质尚未学好)我们通过实验测试来对学习器的泛化误差进行评估进而选择合适的模型,因此需要一个测试集(testing set)来测试学习器对新样本的判别能力,将测试集上的测试误差作为泛化误差的近似。
假设测试样本也是从样本真实分布中独立同分布采样而得。一般测试集尽可能与训练集互斥(测试样本尽量不再训练集中出现)
当我们只有一个包含m个样例得数据集D,既要训练也要测试,此时需要对D进行适当得处理,从中产生出训练集S和测试集T
直接将数据集D划分为两个互斥得集合,其中一个集合作为训练集S,另一个作为测试集T。 D = S ∪ T D=S\cup T D=S∪T , S ∩ T = ∅ S\cap T=\varnothing S∩T=∅,在S上训练出模型后,用T来评估测试误差,作为泛化误差得估计。
注意:
不足:
步骤:
【交叉验证法评估结果的稳定性和保真性取决于k的取值,一般k取10】
优化:
由于将数据集D划分为k个子集同样存在多种划分方式,为减少因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次。最终的评估结果是这p次k折交叉验证结果的均值。
留一法:
假定数据集D中包含m个样本,令k=m,则交叉验证法变为留一法。
留一法缺点:
我们希望评估的是用D训练出来的模型,但是留出法和交叉验证法中,保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这样会引入因训练样本规模不同而导致的估计偏差。
自助法可以减少训练样本规模不同造成的影响,同时还能比较高效地进行实验估计。
步骤:
优点:
缺点:
大多数算法都有参数(parameter)需要设定,参数配置不同,学习模型的性能往往有显著差异。在模型评估与选择时,除了对适用学习算法进行选择,还需对算法参数进行设定,俗称“调参(parameter tuning)”
调参方法:
对每个参数选定一个范围和变化步长
最终模型选择:
给定包含m个样本的数据集D,在模型评估与选择过程中由于需要留出一部分数据进行评估测试,实际上只使用了一部分数据训练模型。因此,在模型选择完成后,学习算法和参数配置已选定,此时需要用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,才是我们最终交付的模型
性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;意味着模型的”好坏“是相对的,什么样的模型是好的,取决于算法、数据和任务需求。
在预测任务中,给定样例集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\} D={(x1,y1),(x2,y2),...,(xm,ym)},其中 y i y_i yi是 x i x_i xi的真实标记。要评估学习器 f f f的性能,就要将预测结果 f ( x ) f(x) f(x)与真实标记 y y y进行比较。
回归中的==”均方误差”==(mean squared error):
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D) =\frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2 E(f;D)=m1i=1∑m(f(xi)−yi)2
对于数据分布 D \mathcal D D和概率密度函数 p ( ⋅ ) \mathcal p(·) p(⋅),均方误差可描述为
E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x E(f;D)=\int_{x \sim D}(f(x)-y)^2p(x)dx E(f;D)=∫x∼D(f(x)−y)2p(x)dx
适用于二分类和多分类
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ E(f;D) &= \fra…
$$
\begin{align}
acc(f;D) &= \frac{1}{m}\sum_{i=1}^{m}I(f(x_i)= y_i) \
&= \int_{x\sim D}I(f(x)=y)p(x)dx \
&=1-E(f;D)
\end{align}
$$
查准率(precision)、查全率(recall)适用于基于信息检索结果的性能度量
P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP
R = T P T P + F N R = \frac{TP}{TP+FN} R=TP+FNTP
理解:
查准率和查全率是一对矛盾的度量。查准率高时,查全率往往偏低;查全率高时,查准率偏低。
如果希望所有的好瓜被选出来,则通过增加选瓜的数量来实现,此时查准率就会较低;希望选出的瓜中好瓜的比例尽可能高,则可挑选最有把握的瓜,此时会漏掉不少好瓜,使查全率较低
【根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在后面的是学习器认为“最不可能”是正例的样本,按次顺序逐个将样本作为正例进行预测,每次可以计算出当前的查全率、查准率,得到P-R曲线】
F1度量:找到合适的学习器
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ F1 &= \frac{2\…
在一些应用中,对查准率和查全率的重视程度有所不同,在商品推荐中,为了尽可能少打扰用户,更希望推荐内容是用户感兴趣的,此时查准率很重要。在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,查全率更重要。
因此,F1的一般形式 F β F_\beta Fβ:
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_\beta = \frac{(1+\beta ^2) \times P \times R}{(\beta ^2 \times P)+R} Fβ=(β2×P)+R(1+β2)×P×R
n个二分类混淆矩阵的查准率和查全率:
宏
现在各个混淆矩阵上分别计算出查准率和查全率,记为 ( P 1 , R 1 ) , ( P 2 , R 2 ) , . . . , ( P n , R n ) (P_1,R_1),(P_2,R_2),...,(P_n,R_n) (P1,R1),(P2,R2),...,(Pn,Rn),再计算平均值,得到宏查准率(macro-P)、宏查全率(macro-R)、宏F1
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ macro-P &= \fr…
微
先将各混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,分别记为 T P ‾ \overline{TP} TP、 F P ‾ \overline{FP} FP、 T N ‾ \overline{TN} TN、 F N ‾ \overline{FN} FN,再基于这些平均值计算出微查准率(micro-P)、微查全率(micro-R)、微F1
$$
\begin{align}
micro-P &= \frac{\overline{TP}}{\overline{TP}+\overline{FP}} \
micro-R &= \frac{\overline{TP}}{\overline{TP}+\overline{FN}} \
micro-F1 &=\frac{2\times micro-P \times micro-R}{micro-P+micro-R}
\end{align}
$$