逻辑回归(logistics regression)

本文公式推导简单清晰,难点略过了,容易理解,请认真耐心看下去。

我们先来看看线性回归(liner regression问题。

现在已知的是这儿有m个样本,比如是m个房子,每个样本具有n个特征属性,比如房子的面积、空间等,我们还知道每个样本的预测特性真实值,即所属label,比如房价,我们用向量Xi表示每个样本(一些课程里面常用xi表示样本向量,用X表示样本矩阵,本文这里使用Xi表示样本向量),用i表示第i个样本,那么就有如下数据表示:

每个样本n个特征,我们用j表示第j个特征,每个向量X表示如下:

逻辑回归(logistics regression)_第1张图片                           逻辑回归(logistics regression)_第2张图片

 对于每一组样本,假设我们的预测特性和特征变量形成如下线性函数,θ为系数向量,(下面函数中没有把常数项单独列出来,大家也可以认为 j 是从0开始的,x0是1,θ0是1的系数变量):

 逻辑回归(logistics regression)_第3张图片

我们要求预测的特性值和真实值尽可能的相近,误差尽可能的小,于是我们将cost(i)采用均方差损失函数

然后得到了最后的损失函数,问题变成了求取下列损失函数最小值时候的向量θ值:

 求取θ值一般有两个方法,一个是通过梯度下降法进行迭代求取,另一个是进行推导直接得到θ矩阵的结果,这里暂时不展开,有兴趣的可以先看看最小二乘法的简单推导,然后再看矩阵推导。

接下来我们来看逻辑回归

假如我们面临一个二分类问题,数据和上面类似,只是预测特性变成了逻辑量,比如label是1或0,表示好房和坏房。如果我们还是采用上面的方法去处理,首先会面临连续量和离散量不匹配的问题,于是我们想到了sigmod函数,sigmod函数如下图所示:

逻辑回归(logistics regression)_第4张图片               逻辑回归(logistics regression)_第5张图片

 此时令:

 损失函数也就变成了:

 

 但是在实际操作过程中发现,损失函数曲线是类似于下面这张图的:

逻辑回归(logistics regression)_第6张图片

 使用梯度下降法求取极值很容易陷入到局部最优,而无法达到全局最优。

所以我们必须更改损失函数,我们的出发点是预测接近或者预测正确,损失值小,预测偏离很大或预测错误,损失值大。

然后我们设想对单一样本有如下代价函数:

 以第一个为例,真实值为1,函数预测值为1的话,cost(i)=0;函数预测值为0的话,cost(i)趋于无限大,第二个类似,这是不是非常符合我们的出发点,但是这样分离式写法不好用,我们巧妙的换一种写法:

 也可以写成:

这又称为交叉熵损失函数,然后我们就会得到最后的平均损失函数 :

 如果我们使用梯度下降法去求θ向量值,那么就会对每一个θj进行求导,这里我们特别的说一下sigmod函数求导的一个特性:

 这个在J(θ)求导的过程中会很有用,求导过程要特别注意求导嵌套次序以及正负号问题,对于每一个θj,我们求导得到如下结果:

逻辑回归(logistics regression)_第7张图片

 根据梯度下降法对每一个θj进行反方向更新:

逻辑回归(logistics regression)_第8张图片

 

迭代步长β和系数倍数融合得到一个新的系数常量α,我们认为它是新的步长或者学习率。

逐步迭代,最后在损失函数收敛时得到 θ向量的所有值。

你可能感兴趣的:(机器学习)