机器学习入门——线性模型(1)

线性linear,指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑的运动,一阶导数为常数;非线性non-linear则指不按比例、不成直线的关系,代表不规则的运动和突变,一阶导数不为常数。

线性模型试图学得一个通过属性的线性组合来进行预测的函数,即

f(x) = ω1 X1 + ω2 X2 +...+ωdXd + b

一般用向量形式写成 f(x) = ωTx + b,其中ω = (ω1; ω2;...;ωd)可以认为是各属性的权重,x = (x1; x2;...;xd)

数据处理
对离散属性,若属性间存在“序”关系,可通过连续化将其转化为连续值,例如二值属性身高的“高”和“矮”可以转化为{1.0, 0.0}。若属性值间不存在序关系,假定有k 个属性值,则通常转化为k 维向量,例如属性"瓜类"的取值"西瓜" "南瓜" "黄瓜"可转化为(0 , 0 , 1) , (0, 1 ,0), (1 ,0, 0)。
对于连续型数据,我们也可以通过一些方法将其离散化。离散化有很多的好处,比如能够使我们的模型更加的简单,因为相对于连续类型数据,离散类型数据的可能性更少。对于某些模型比如计算广告中常用的逻辑回归,是非常需要我们输入离散化的特征的。
属性离散化方法
属性离散化方法有很多,基本可以分为三种分类方法。1. 无监督离散化和有监督离散化。在离散化过程中使用类信息的方法是有监督的,而不使用类信息的方法是无监督的。- 无监督离散化:
等宽分箱法:将数据均匀划分成n等份,每份间距相等。缺点是受异常值影响比较大。
等频分箱法:把观察点均匀分成n等份,每份包含的观察点相同。
聚类划分:使用聚类算法将数据聚成几类,每一个类为一个划分。- 有监督离散化:
基于(信息)熵的离散化方法。
卡方分裂法
2 全局离散化和局部离散化。全局离散化是指使用整个样本空间进行离散化,而局部离散化指在样本空间的某一个区域进行离散化。
3 动态离散化和静态离散化。动态离散化方法是在建立分类模型的同时对连续属性进行离散化,而静态离散化是在进行分类之前进行离散化。

线性模型中如何确定ω和b呢?

我们常用均方误差最小化来计算,即


机器学习入门——线性模型(1)_第1张图片
式1

均方误差也是一种误差性能评价方法,具体可参考周志华老师的《机器学习》第45页。f(xi)表示学习器模型的预测输出,yi是真实值,arg min f(x)表示当f(x)取最小值时,x的取值,即右面的式子取最小值时ω和b的取值是ω*和b*

均方误差有非常好的几何意义,它对应于“欧氏距离”。下面介绍几种距离:
欧氏距离
n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):


标准化欧氏距离: 标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。【对于尺度无关的解释】如果向量中第一维元素的数量级是100,第二维的数量级是10,比如v1=(100,10,30),v2 = (500,40),则计算欧式距离

可见欧式距离会给与第一维度100权重,这会压制第二维度的影响力。对所有维度分别进行处理,使得各个维度分别满足标准正态分布。
还有一种对欧式距离的处理是均值化但没有归一化(Normalized),即

其中s 2 i是第i维度的方差(此处虽然举例只有X,Y两个点,但整个数据集中会有无数个点,根据数据集得到方差分布)
曼哈顿距离
n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:

切比雪夫距离
n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:

使均方误差最小化来进行模型求解的方法称为“最小二乘法”,在线性回归中,最小二乘法就是找到一条直线,使所有样本到直线的欧氏距离之和最小。

拿出上述公式右半部分,要求

的最小值,可以考虑求极值,只需要将其分别对ω和b求偏导数并令其为0即可。最后求得ω和b最优解的闭式解:


机器学习入门——线性模型(1)_第2张图片

其中

数值解是在特定条件下通过近似计算得出来的一个数值。
解析解,也叫闭式解。就是给出解的具体函数形式,从解的表达式中就可以算出任何对应值。

上面所计算的是针对d各变量属性描述的样本,其中x = (x1; x2;...;xd),称为线性回归模型的最小二乘参数估计。

如果给定数据集D = {(x1, y1),(x2, y2),...,(xm, ym)},其中xi = (xi1; xi2;...;xid),xij代表第i个样本的第j个特征,yi是真实情况,y = (y1;y2;...;ymT注意并不是我们划分的类型,(xm, ym)会是出现在样本空间中的某个点,我们要找到某个线将不同类的点区分开。样本个数是m个,由d个属性描述,类似于我之前写的西瓜的例子。我们试图学得

这称为“多元线性回归”。

我们将上面左边那个式子表示出来

第一个式子是 f(x1) = ω1x11 + ω2x12+ ... + ωdx1d + b。其实可以将b换成ω0,写为 f(x1) =ω0 + ω1x11 + ω2x12+ ... + ωdx1d,则 方程组为:

机器学习入门——线性模型(1)_第3张图片

写为矩阵形式
机器学习入门——线性模型(1)_第4张图片

即,f( xi) = xi ω


可以得到



这里的符号有些变化,但略一思考就可知道是如何对应的,还有因为这里的y是矩阵向量,所以需要有一个矩阵转置才能得到每一项差的平方和。和前面一样,接下来只需要让
对里面的ω(带尖角)求导并令其为0,就可解得ω(带尖角)最优解的闭式解。

考虑一下,如果将ω x + b放进另外一个单调可微函数g( . )里面有什么效果,即 y = g-1(ωTx + b),我们发现如果这样做的话,就可以将线性模型得到的输出以另外一种变化表达。比如如果将输出标记的对数作为线性模型逼近,即 lny = ωTx + b,实际上是让

逼近目标,看下图
机器学习入门——线性模型(1)_第5张图片

这种模型被称为“广义线性模型”,其中g( . )称为联系函数。

参考:《机器学习》 周志华
http://www.cnblogs.com/jiaxin359/p/8574510.html
https://wenku.baidu.com/view/7f24b4b155270722192ef7cd.html
https://blog.csdn.net/qq1028850792/article/details/13024273

你可能感兴趣的:(机器学习入门——线性模型(1))