1.从线性回归到逻辑回归
线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数(θ),满足(Y=Xθ)。此时我们的Y是连续的,所以是回归模型。
如果我们想要Y是离散的话, 一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为(g(Y))。如果我们令(g(Y))的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。
2.二元逻辑回归的模型
逻辑回归的思想就是 在线性回归上再做一次函数转换,即上一节我们提到对线性回归的结果做一个在函数(g)上的转换,可以变化为逻辑回归。这个函数(g)在逻辑回归中我们一般取为sigmoid
函数,形式如下:
图形如图:
如果我们令(g(z))中的(z)为:(z=xθ),这样就得到了二元逻辑回归模型的一般形式:
其中(x)为样本输入,(hθ(x))为模型输出,可以理解为某一分类的概率大小。而(θ)为分类模型的要求出的模型参数。
我们假设,如果(hθ(x)>0.5) ,即(xθ>0), 则(y)为1。如果(hθ(x)<0.5),即(xθ<0), 则(y)为0。 (y=0.5)是临界情况,此时(xθ=0)为, 从逻辑回归模型本身无法确定分类。
——(hθ(x))的值越小,而分类为0的的概率越高,反之,值越大的话分类为1的的概率越高。如果靠近临界点,则分类准确率会下降。
3.参数估计
模型的数学形式确定后,剩下就是如何去求解模型中的参数。
由于在线性回归模型中,输出(y)值是连续的,因此可以用差值的平方等表示损失函数。但是在逻辑回归中,输出(y)值是离散的,所以损失函数用极大似然法估计。
- 最大化似然函数 == 最小化损失函数
- 损失函数是似然函数求对数再取反
我们知道,按照二元逻辑回归的定义,假设我们的样本输出是0或1两类,那么我们有:
把这两个式子写成一个式子,就是:
其中y的取值只能是0或者1 ,用矩阵法表示,即为:
其中E为单位矩阵。
得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数( heta).
为了方便求解,这里我们用对数似然函数最大化,对数似然函数取反即为我们的损失函数(J( heta)).
似然函数的代数表达式为:
损失函数用矩阵法表达更加简洁:
这样,问题就转换成目标为最小化损失函数的优化问题,求解参数
4. 参数求解方法
对于求解二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等。这里用梯度下降法中θ每次迭代的公式。(用矩阵的写法)
对于(J( heta)=-Y.logh_{ heta}(X)-(1-Y).log(E-h_{ heta}(X))),我们用(J( heta))对向量( heta)向量求导得:
这一步用到了矩阵求导的链式法则,和下面三个矩阵的求导公式:
(frac{partial}{partial X}logX=frac{1}{X})
(frac{partial}{partial z}g(z)=g(z)(1-g(z))) ((g(z))为sigmoid函数)
(frac{partial}{partial heta}X heta= X^T(h_{ heta}(X)-Y))
从而在梯度下降法中每一步向量 ( heta) 的迭代公式如下:
其中, (alpha) 为梯度下降法的步长
5. 二元逻辑回归的正则化
逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化 。
二元逻辑回归的L1正则化损失函数表达式如下:
其中(parallel{ heta}parallel_1) 为L1范数
其中(parallel{ heta}parallel_2^2) 为L2范数
两种正则化的特点
L1正则化的模型建叫做Lasso回归,L1会趋向于产生少量的特征,而其他的特征都是0。Lasso在特征选择时候非常有用.
L2正则化的模型叫做Ridge回归(岭回归),L2会选择更多的特征,这些特征都会接近于0。这就只是一种规则化,防止过拟合。