线性回归是机器学习里面最常见的学习模型。
基本线性方程:
1.思想:
用一个线性组合的方程去拟合数据,系数则可以告诉我们哪些特征有用,哪些没用。
2.基本形式:
3.求解方法:
我们假设线性方程为:
f(x)=a1x1+a2x2+...+adxd+d=WT∗X , t 为数据目标值
这里我们使用最小二乘方法求系数
然后我们目标就是让其最小 minLoss 函数,所以我们想到求导,让它最小。
求导: dLossdw=0
矩阵形式: W^=(W;b) , X=(X;1) (之所以加了1是为了考虑W中的b)。
如果X是个满秩的,那么我们就可以直接得出 W^=(XTX)−1XTt
注:之所以要满秩是因为我们要求逆,但是如果不满秩,我们也可以引入二范式来使其满秩。
对数回归:
之前我们看到的是最简单的线性方程来拟合,但是有的时候,数据并不呈现一个线性关系,那么应该怎么办呢,这里我们就考虑对数回归。
对数回归就是在线性回归的模型上面加一个非线性的映射:
在这里特别说明一下,虽然在这里已经看不出是一个线性的关系了,但是在我们取了对数以后,就可以发现还是一个 lnY 与 X 的关系还是线性关系,所以对数回归还是归根到底是一个线性回归:
广义的模型:
逻辑回归:
逻辑回归是线性回归扩展出来非常重要的一个模型算法。逻辑回归主要是用于分类问题。在这里,我们以二分数为主来讨论。
首先,我们先看一下逻辑回归的方程:
这是,我们就有一个问题:为什么选softmax函数呢?
以下是我的个人理解:
在我们想用线性回归来分类的时候,我们最容易想到的当X是正类时,Y=1,当X是负类时,那么Y=0,这样其实是一个阶跃函数(sign函数这种,有点像感知机),但是这种函数有个很大的问题就是不连续,当其在X=0时,到底取什么值呢?所以这样就很不好处理,这时我们就需要一个连续型可以替代阶跃函数的函数,这样我们就想到了softmax函数。我们就可以根据函数的值来区分类别了。
第二个问题是,逻辑回归我们能否用概率论来解释它的物理意义呢?
我觉得是可以的,因为在逻辑函数我们可以看出它的值已经被限制在了0~1之间,而概率的要求也正好是0~1之间。(也许你觉得这样说有点牵强,但是我们当时选softmax时,其实就是为了让它有一种解释来帮助你分类,所以你才让输出的值是0~1。)
为什么会讨论是否能用概率论来解释呢,因为下面要用到概率论中一个重要的求解方法。这也是为了方便记住这种方法。
参数求解:
这里用到的是最大似然函数:(下面方程已经对似然函数取了对数)
接下来就是用梯度下降或者最速下降法就可以求出最佳的参数。
线性判别模型:
线性判别模型的英文是Linear Discriminant Analysis,也叫LDA。
1.思想:
线性判别模型的思想很简单,就是将数据投射到一条线上,然后希望同类的距离尽量小,组间距离尽量大。
2.方法:
我们现在就是要找到这么一条线,达到之间我们希望的那样。所以我们现在就要寻找那根线。
这是,我们用一个指标:
J=||wTx0¯−wTx1¯||22wT(σ0+σ1)w
J=wT(x0¯−x1¯)(x0¯−x1¯)TwwT(σ0+σ1)w
说明一下,这个
x¯
表示组间的距离。
σ
表示组内方差。
我们现在写成矩阵的形式 。
类内散度矩阵:
类间散度矩阵:
现在我们重写
我们为了让J最大,但是这个函数不好求呀,这个时候我们就求助于拉格朗日大神了!
我们假设 WTSwW=1 ,所以我们就可以把上面问题转化为下面形式:
对w求导:
接下来用特征值方程:
(这个解释是说 Sb 的方向始终为 x0¯−x1¯ ,但是我不是很理解……)
最后我们就能写出W的方程:
我们也能扩展到LDA多分类问题
假定存在N个类,第i类表示为 mi ,全局散度矩阵:
W=S−1wSb
3.LDA总结:
LDA不仅可以用于二分类,同样可以用于多分类问题,在多分类问题解出W时,通常维度小于原始的,所以也可以用于降维。