matlab实现logistic回归

Logistic回归是一个线性概率分类器。通过加权矩阵W和偏置向量b实现了参数化。通过将数据点投影到超平面集上来实现分类,其中距离反映数据点的归属概率。

其中会用到一个非常重要函数,能够将数据投影,利用数学语言表述:


这是一个关于点(0,0.5)对称的奇函数。从这个意义上说来,logistic回归与线性回归有着许多相似之处。我们可以将线性回归中的数据做一下处理,即g(z) = z

在线性回归问题中,由于对于应变量y值的取值范围没有限定,所确定的分类面为=0。但在实际问题中,常会遇到应变量y只取0,1两个值的情形。在这种情形下,继续使用线性回归显然是不适用的。为了实现分类,利用logistic函数或sigmoid函数将分类面投影:


是待估参数,此时函数的取值范围在(0,1)区间,假设


y是离散型随机变量,上式是它的分布律。在具体问题中,当我们训练出参数theta后,分别计算上述概率,那个的概率大就将待预测样本划分到相应的类中。

为了以后分析方便起见,我们将它转换为如下形式:


上述表达式是将随机变量的分布律写成统一的形式,其中theta是未知参数,需要对其进行估计,(x,y)相当于采自这个分布的一组样本,现在根据这些样本,求未知参数theta的极大似然估计。首先写出似然函数

matlab实现logistic回归_第1张图片

现在需要求使得似然函数达到最大值时的参数theta,上述形式不容易求解。因为函数与其对数函数有相同的单调性。我们求它的对数似然

matlab实现logistic回归_第2张图片

利用梯度下降法求上述函数的极大值点,先求其梯度

matlab实现logistic回归_第3张图片


最终迭代更新参数的公式为:


matlab实现logistic回归_第4张图片

matlab实现logistic回归_第5张图片

下面是logistic回归的简单实现,编程的过程与线性回归极为相似,只是价值函数和梯度略有不同

matlab实现logistic回归_第6张图片

你可能感兴趣的:(matlab实现logistic回归)