1.基本形式
给定由d个属性描述的示例,其中
是
在第
个属性上的取值,线性模型通过对属性的线性组合来预测的函数:
(一般写成向量形式);
参数w的大小可以反映对应属性的“偏好”;
2.线性回归
使用均方误差衡量预测与真实之间误差大小,即,求最小值使误差最小;
分别对w和b求偏导,在令偏导为0,则可得到最优解,多选线性回归问题类似。
3.对数几率回归
对数几率回归问题主要对用于分类问题,对数几率问题在很多地方称为逻辑回归。用直线对数据点进行拟合的过程叫做回归,用公式表示线性回归。由于输入到输出是非线性映射的,因此考虑单调可微函数
,令
用对数几率函数(logistic function)替代的回归模型称为Logistic回归,常用
代替,通过对y=0.5点判断进行分类,解决了阶跃函数不连续的问题。。函数图像如下:
图1 sigmoid函数图像
Logistic回归优缺点:
-
优点:计算代价不高,易于理解实现;
-
缺点:容易欠拟合,分类精度不高;
-
适用数据类型:数值型和标称型。
4.梯度上升法
梯度是一个向量,指一个函数在某一点处沿着梯度方向变化最快,变化率最大。将梯度记为,则函数
的梯度可以表示为 :
该公式表示在二维空间中,梯度沿方向移动
,沿
方向移动
。用公式表示题都上升为
其中表示沿梯度方向前进的步长。上式会一直迭代,直到降到目标误差或者达到迭代次数位置。
def gradAscent(data_mat, label_mat):
dataMatrix = np.mat(data_mat)
classMatrix = np.mat(label_mat).transpose()
m, n = np.shape(dataMatrix)
alpha = 0.001
epoch = 400
weights = np.ones((n, 1))
for k in range(epoch):
mul = dataMatrix * weights
h = sigmoid(mul)
error = h - classMatrix
weights = weights + alpha * dataMatrix.transpose() * error #1
return weights
在注释1处的梯度上升公式有变化,推导如下:
由于输入向量为,可转化为矩阵形式
其中,
。原sigmoid函数可改为
(1)
对于二分类问题,若用表示分类为0和1的概率,则概率分别为:
对似然函数求对数得到
对上式求导
将公式(1)带入上式得到
上式中为真实值和期望值的差,即误差
。
5.梯度下降法
梯度下降法与梯度上升法原理相同,将改为
即可,唯一不同的是梯度上升法是求最大值,而梯度下降法是求最小值。
6.线性判别分析
线性判别分析思想很简单,将平面上的点投影到一条直线上,通过在直线上的投影进行分类。通过均值向量和协方差矩阵等度量。欲使同类样例的投影点尽可能接近,让同类样例投影点协方差尽可能小;欲使异类样例投影点尽可能远,让中心之间距离尽可能大。
7.多分类学习
多分类学习氛围OvO,OvR,和MvM。
- OvO即一对一,每次从类别中选取两个进行分类,则会产生N(N-1)/2个分类任务(N为分类数),最后通过投票产生结果,即选取多数。
- OvR即一对剩余,每次将一个类选为正例,其余所有选为反例进行学习,这样会产生N个分类任务。
- MvM即多对多,每次选取若干个为正例,若干个为反例进行学习。OvO和OvR是MvM的特殊情况。
- MvM正反例构造技术:纠错输出码(ECOC)。ECOC有二元和三元码。ECOC具有一定的容错与修正能力。
常用距离判定:
- 欧氏距离:
- 海明距离:即编码中不同的个数。
8.总结
第三章主要介绍线性模型,对回归和分类问题进行了解释,线性模型是最基本的模型,其中原理不难理解,推导过程需要加强理解。
参考文献
[1] Peter Harringtom. 机器学习实战[M].北京, 人民邮电出版社, 2013.
[2] 周志华. 机器学习[M].北京,清华大学出版社,2016.