记录《机器学习》(周志华)的相关阅读笔记。
第1章 绪论
- 模型预测的是离散值,称为分类;预测的是连续值,称为回归。
- 机器学习算法在学习过程中对某种类型假设的偏好,称为"归纳偏好"。归纳偏好对应了学习算法本身所做出的关于"什么样的模型更好"的假设。
第2章 模型评估与选择
- 学习器在训练集上的误差称为"训练误差"或"经验误差",在新样本的误差称为"泛化误差"。
- 把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。这种现象在机器学习中称为"过拟合";对训练样本的一般性质尚未学好,称为"欠拟合"。(多种因素可能导致过拟合,其中最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特效都学到了,而欠拟合则通常是由于学习能力低下而造成的)。
- 数据集划分的方法:
- 留出法:将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测速集T,即 D = S ∪ U D = S{\cup}U D=S∪U, S ∩ T = ∅ S{\cap}T={\varnothing} S∩T=∅.在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。(如果从采样的角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为"分层采样")
- 交叉验证法:先将数据集D划分为k个大小相似的互斥子集,即 D = D 1 ∪ D 2 ∪ . . . ∪ D k , D i ∩ D j = ∅ ( i ≠ j ) D=D_1{\cup}D_2{\cup}...{\cup}D_k,D_i{\cap}D_j={\varnothing}(i{\neq}j) D=D1∪D2∪...∪Dk,Di∩Dj=∅(i=j),每个子集 D i D_i Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。(k最常用的取值是10,此时称为10折交叉验证;假定数据集D中包含m个样本,若令k=m,则得到了交叉验证法的一个特例:留一法(leave-One-Out))
- 自助法(bootstrapping):每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,就得到了包含m个样本的数据集D’,样本在m次采样中始终不被采到的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1−m1)m,去极限得到 lim m → ∞ 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m{\to}{\infty}}1-\frac{1}{m})^m=\frac{1}{e}{\approx}0.368 limm→∞1−m1)m=e1≈0.368,初始数据集D中约有36.8%的样本未出现在采样数据集D’中,将D’用作训练集,D-D’用作测试集。(自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差)
- 通常把学得模型在实际使用中遇到的数据称为测试数据;模型评估与选择中用于评估测试的数据集常称为"验证集"
- 回归任务最常用的性能度量是"均方误差": 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)=m1∑i=1m(f(xi)−yi)2
- 查准率(precision)、查全率(recall)
P = T P T P + F P , R = T P T P + F N P = \frac{TP}{TP+FP},R=\frac{TP}{TP+FN} P=TP+FPTP,R=TP+FNTP
真实情况 | 预测结果 | |
---|---|---|
正例 | 反例 | |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
- 以查准率为纵轴、查全率为横轴作图,得到查准率-查全率曲线,简称"P-R曲线"。(可以根据P-R曲线下面积的大小判断模型的性能)
- F1度量的一般形式 F β F_{\beta} Fβ,可以表达出对查准率/查全率的不同偏好, F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{\beta}=\frac{(1+{\beta}^2)×P×R}{({\beta}^2×P)+R} Fβ=(β2×P)+R(1+β2)×P×R,其中 β > 0 {\beta}>0 β>0度量了查全率对查准率的相对重要性. β = 1 {\beta}=1 β=1时退化为标准的F1; β > 1 {\beta}>1 β>1时查全率有更大影响; β < 1 {\beta}<1 β<1时查准率有更大影响。
- 进行多次训练/测试,每次得到一个混淆矩阵,先在各个混淆矩阵上分别计算出查准率和查全率,再计算平均值,得到宏查准率、宏查全率和宏F1;先将各混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,再基于这些平均值计算出微查准率、微查全率和微F1。
- 根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了ROC曲线。ROC曲线的纵轴是"真正例率(True Positive Rate,简称TPR)",横轴是"假正例率(False Positive Rate,简称FPR)"。
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP, F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP - ROC曲线的绘图过程:给定 m + m^+ m+个正例和 m − m^- m−个负例,根据学习器预测结果对样例进行排序,然后把分类阀值设为最大,即把所有样本均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点。然后,将分类阀值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为 ( x , y + 1 m + ) (x,y+\frac{1}{m^+}) (x,y+m+1);当前若为假正例,则对应标记点的坐标为 ( x + 1 m − , y ) (x+\frac{1}{m^-},y) (x+m−1,y),然后用线段连接相邻点得到。
- ROC曲线判断模型的性能可以比较ROC曲线下的面积,即AUC, A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) AUC=\frac{1}{2}{\sum}_{i=1}^{m-1}(x_{i+1}-x_i)(y_i+y_{i+1}) AUC=21∑i=1m−1(xi+1−xi)(yi+yi+1)。 A U C = 1 − l r a n k AUC=1-l_{rank} AUC=1−lrank,其中 l r a n k l_rank lrank为排序损失。
- 为权衡不同类型错误所造成的不同损失,可为错误赋予"非均等代价"。可设置一个代价矩阵, c o s t i j cost_{ij} costij表示将第i类样本预测为第j类样本的代价。
真实类别 | 预测类别 | |
---|---|---|
第0类 | 第1类 | |
第0类 | 0 | cost01 |
第1类 | cost10 | 0 |
- 在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而代价曲线可以达到该目的。
- 2.4 比较检验 p37
第3章 线性模型
- 基于均方误差最小化来进行模型求解的方法称为"最小二乘法",在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
- l n y = w T x + b ln\ y=w^Tx+b ln y=wTx+b为对数线性回归,它实际上是在试图让 e w T x + b 逼 近 y e^{w^Tx+b}逼近y ewTx+b逼近y,在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射。
- 牛顿法 p59
- 线性判别分析(Linear Discriminant Analysis):给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。p61
- 考虑N个类别 C 1 , C 2 , . . . , C N C_1,C_2,...,C_N C1,C2,...,CN,多分类学习的基本思路是"拆解法",即将多分类任务拆为若干个二分类任务求解。最经典的拆分策略有三种:一对一、一对其余、多对多。
- 一对一:将N个类别两两配对,从而产生N(N-1)/2个二分类任务。如为区分类别 C i C_i Ci和 C j C_j Cj训练一个分类器,该分类器把D中的 C i C_i Ci类样例作为正例, C j C_j Cj类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,将得到N(N-1)/2个分类结果,最终结果可通过投票产生:把被预测得最多的类别作为最终分类结果。
- 一对其余:每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器.在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。p64