《统计学习方法》线性模型的读书笔记

逻辑回归:
基本原理:
1)正负样本为1和0:
预测函数:将输入特征x乘以线性回归系数w(可以增加截距b),得到z=wTx+b。选择f(z)=1/(1+exp(z))函数作为sigmoid函数,作为预测类别为正样本的概率值h(x),负样本概率值为1-h(x),将正负样本概率值求商之后再取对数,即概率比值对数ln(h(x)/(1-h(x)))=wTx为一个线性模型。
如何求解最优的w:首先要构造目标函数,目标函数为训练样本真实的类别对应的模型预测概率,假设类别yi(yi=1,0),某一个样本的预测概率为(h(x)yi)*((1-h(x))(1-yi)),将所有样本的正确类别预测概率值进行连乘,目标是要求解这个连乘值最大的w,我们称之为极大似然估计。为方便求解取对数后即为对数最大似然估计,连乘变成了各样本求和,将求极大值的目标函数求反即为求解目标函数极小值,该对数目标函数是一个凸函数,可以用梯度下降法或者拟牛顿法求解w。也可以转化成对偶问题进行求解。
2)另一种形式,正样本为+1、负样本为-1:
概率函数为p(yi)=1/(1+exp(-yi(wTx+b))),利用类似的方式求得其极小化的目标函数。可以将b作为w的一个维度,同时输入x增加一个1的输入值,将wx+b转成w*x的形式。
3)正则化:在上述的最小化目标函数后增加一个W的L1范数或者L2范数的正则项,以平衡模型的复杂度,同时在原目标函数前增加一个罚项系数C作为平衡系数,平衡正则化和准确度的比例。可以证明增加L1和L2范数以后的目标函数仍然是一个凸函数,可以用相同的方法求解最优的w。

线性判别分析:
二分类:
1)构造目标函数:将特征x用向量w投影后,求得投影后的向量的类间散布矩阵wTSBw和类内散布矩阵wTSww之商,目标函数是求这个商的最大化。
2)求解目标函数:求解方法是将目标函数转化成带约束条件的极大值问题,再将该问题利用拉格朗日求解法进行求解,解w是Sw-1SB矩阵的特征向量,对应特征值λ。
3)类别判定:求得投影w后,对需要判别的类别x,求得wT
x并计算投影后的向量和各个类别投影后的均值向量的距离,距离最小的即为该模型预测的类别。argmin(i)||wTx-wTmi||
多分类:将二分类的方法扩展到多分类,w向量变成了W矩阵,它是d*(c-1)维的矩阵。目标函数变成求解tr(WTSBW)/tr(WTSwW)最大值,类似的我们解出Sw-1*SB矩阵的c-1个特征值和特征向量构成W矩阵即为目标W。预测类别的方式与二分类类似,也是比较投影后与各类别均值向量的距离,距离最小的即为判定类别。

感知机:
建立一个线性超平面(wT•x+b=0),将正负样本分隔开,这个超平面可能不止一个解。决策函数f(x)=sign(wT•x+b),求解这个决策函数的w、b变成了对误分类点的损失函数L(w,b)=∑yi(wT•x+b)的求解。这个损失函数是误分类驱动的,可以通过随机梯度下降求解。也可以考虑将其转化成对偶形式后进行求解。
感知机的求解过程相当于每次检验是否有误分类点,如果存在yi(wT•x+b)<0,更新调整w、b或者是拉格朗日乘子α,直到达到停止条件。如果数据集线性不可分,算法不收敛,迭代结果会发生震荡。

SVM算法:
1、线性支持向量机:
1)硬间隔:如果数据线性可分,寻找一个线性超平面,wTx+b=0,使得正负样本的支持向量到平面的距离|wTxi+b|>=1,保证该超平面和两边的支持向量的样本点之间的距离是众多分离超平面中最大的。将间隔极大转成求极小的形式后,目标函数为:min 1/2||w||^2,s.t. wTx+b>=1。决策函数为:sign(wTx+b)。可以证明,目标函数和决策函数均为凸函数。间隔边界为:wTx+b=±1,间隔为2/||w||。
目标函数是一个带约束条件的函数,用拉格朗日对偶形式求解更有效,即将目标函数转化成拉格朗日对偶形式。求解关于alpha的拉格朗日函数,w、b可以通过求解到的alpha计算。计算后可得到用最优解的拉格朗日乘子和样本值表示的决策函数。
2)软间隔:在硬间隔的基础上,考虑增加松弛变量e。硬间隔目标函数变为:min 1/2||w||^2 + ∑Ce,s.t. wT
x+b>=1-e。拉格朗日对偶形式的目标函数中,拉格朗日乘子的约束条件同步变化。求解过程类似于硬间隔的求解过程。
3)合页损失函数(hinge):将原始形式的软间隔目标函数转化成“损失函数+λ||w||^2的形式求解凸二次规划问题。
2、非线性支持向量机:
将特征向量映射到高维的希尔伯特空间:X->H,映射函数不需要求解出来,假设为o(x),使得映射函数对所有的原始特征空间的x、z,有o(x)•o(z)=K(x,z),K(x,z)为核函数。
那么原始对偶问题中目标函数和决策函数中的xi•xj转化成K(xi,xj),如果给定核函数的形式,可以像求解线性支持向量机的方式一样求解非线性目标函数。常用的核函数包括高斯核函数、多项式核函数、sigmoid核函数,在文本挖掘类问题中还可以使用字符串核函数。
3、支持向量机目标函数最优化方法
使用SMO(序列最小最优化算法)来求解目标函数,SMO算法主要包括两个步骤:第一个是选择两个进行优化的变量(选择变量可以先选择违反KKT条件最严重的那个变量);第二是固定其他变量,对这两个变量的二次规划问题进行求解。然后再判定更新两个变量最优解之后是否符合停止条件,如果不符合,继续选择两个变量作为新的子问题,继续迭代求解,最后得到近似的最优解的一组拉格朗日乘子α向量。

你可能感兴趣的:(建模)