读书笔记 周志华老师的《机器学习》
因为边看边记,所以写在随笔里,如果涉及版权问题,请您联系我立马删除,[email protected]
3.1 基本形式
给定d个属性描述的示例 x = (x_1;x_2;...;x_3), 其中x_i是X在第i个属性上的取值,线性模型视图学得一个通过属性的线性组合来进行预测的函数,即
f(x) = w_1*x_1 + w_2*x_2 + ... + w_d*x_d + b, 向量形式
其中 w = (w_1;w_2;...;w_d).
w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。
3.2 线性回归linear regression(这一节阐述公式概念,所以全部引用了~)
给定数据集 D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} , 其中 x_i = (x_i1;x_i2;...;x_id). 试图学得 f(x_i) = wx_i+b.使得 f(x_i)~y_i
如何确定w和b?均方误差是回归任务中最常用的性能度量,即试图让均方误差最小化:
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method), 在线性回归中,最小二乘法就是试图找到一条直线, 使所有样本到直线上的欧氏距离之和最小。
E是关于w和b的凸函数,当它关于b和w的导数均为零时,得到w和b的最优解;对区间[a,b]上定义的函数f,若他对区间上任意两点x_1,x_2均有 f((x_1+x_2)/2) <= (f(x_1) + f(x_2))/2,则称f为区间[a,b]上的凸函数;U型曲线的函数如 f(x) = x * x, 通常都是凸函数; 对实数集上的函数,可通过求二阶导数来判别:若二阶导数在区间上非负,则称为凸函数,若二阶导数在区间上恒大于0,则称为严格凸函数。
求解w和b使E最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation),将E分别对w和b求导,
另上式为零可得到w和b最优解的闭式(closed-form)解
其中
更一般的情形是给定数据集 D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} , 其中 x_i = (x_i1;x_i2;...;x_id),样本由d个属性描述,
称为多元线性回归(multivariable linear regression),类似地也可以利用最小二乘法来对w和b估计,把数据集D表示为一个m*(d+1)大小的矩阵X,每行对应于一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素恒置为1,即:
把标记写成向量形式y=(y_1;y_2;...;y_m),求,
........
线性回归模型
将输出标记的对数作为线性模型逼近的目标,即得到“对数线性回归”log-linear regression,
更一般的,考虑单调可微函数g(),令
得到的模型为“广义线性模型”generalized linear model,函数g称为联系函数,对数线性回归是广义线性模型在g=ln时的特例。
3.3 对数几率回归
分类任务肿么办?只需要找一个单调可微函数将分类任务在真实标记y与线性回归模型的预测值联系起来。
二分类,y-{0,1},线性回归模型产生的预测值是实值,理想的是“单位阶跃函数”,预测值为临界值时任意判别。
单位阶跃函数不连续,不能直接用作联系函数,对数几率函数logistics function是一种Sigmoid函数,单调可微,将z值转化为一个接近0或1的y值,输出值在z=0附近变化很陡,
将其代入广义线性模型公式中,
若将y视为样本x作为正例的可能性,两者的比值称为几率,反映了x作为正例的相对可能性,用线性回归模型的预测结果去逼近真实标记的对数几率,其对应的模型称为“对数几率回归” logistic regression,是一种分类学习方法,逻辑回归模型的优点有:1.它是直接对分类可能性进行建模,无需事先假设数据分布,这样避免了假设分布不准确所带来的问题;2.它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;3.对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。
可通过最大似然法maximum likelihood method估计w和b的值,
即另每个样本属于其真实标记的概率越大越好,后面的求解可通过梯度下降法gradient descent method、牛顿法Newton method求解。
3.4 线性判别分析
线性判别分析Lineard Discriminant Analysis, LDA,是一种经典的线性学习方法,二分类问题上最早由Fisher,1936提出,亦称“Fisher 判别分析”。
LDA的思想:给定训练样例集,设法将样例投影到一条直线上使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离,在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
给定数据集D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)},
若将数据投影到直线w上,则两类样本的中心在直线上的投影分别为
若将所有样本点都投影到直线上,则两类样本的协方差分别为
欲使同类样例的投影点尽可能接近,可让同类样例投影点的协方差尽可能小,即尽可能小;而欲使异类样例的投影点尽可能远离,可让类中心之间的距离尽可能大,即
尽可能大,同时考虑二者,得到最大化目标:
后续求解见课本,这里主要阐述问题。
若W是一个投影矩阵,则多分类LDA将样本投影到N-1维空间,N-1通常远小于数据原有的属性数,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此LDA被视为一种经典的监督降维技术。
3.5 多分类学习
拆解法
一对一: One v One,将N个类别的数据集两两配对,从而产生N(N-1)/2个分类任务,测试阶段,将新样本交给所有分类器,得到N(N-1)/2个分类结果,把被预测得最多的类别作为最终分类结果。
一对多:One v Rest.每次将一个类的样例作为正例、其他所有类的样例作为反例来训练N个分类器。在测试时如果有一个分类器预测为正,则对应的类别标记作为最终分类结果。
一对多训练N个分类器,但一对一训练N(N-1)/2分类器,一对一的存储开销和测试时间开销通常比一对多更大,但是在训练时一对多的每个分类器均使用全部训练数据,当类别很多时,一对一开销比一对多小。测试性能取决于具体的数据分布。
多对多:每次选若干个正例,若干个反例。纠错输出码技术ECOC,纠错输出码对分类器的错误有一定的容忍和修正能力。
3.6 类别不平衡
class-imbalance指分类任务中不同类别的训练样例数目差别很大的情况。
再缩放策略:欠采样、过采样、阈值移动。