龙空技术网

机器学习(二)逻辑回归(logistic回归)算法原理

python万 387

前言:

现时各位老铁们对“python调用逻辑回归算法”大约比较关注,我们都想要学习一些“python调用逻辑回归算法”的相关文章。那么小编在网摘上搜集了一些有关“python调用逻辑回归算法””的相关知识,希望咱们能喜欢,兄弟们快快来学习一下吧!

逻辑回归算法介绍

在之前的文章中我们介绍了线性回归问题,不难发现线性模型主要是用来做回归问题,但是通过本节的学习,你就会发现线性模型也可以用来分类,这就是逻辑回归分类。它的大致思想为:通过计算样本属于某个类别的概率值大小对样本进行分类,一般来说,如果样本属于某个类别的概率大于0.5就属于类别1,小于0.5就属于类别0。

逻辑回归算法的主要用途分类:根据某个情况发生的概率大小和给定的判定阈值判断样本的类别,常用于二分类,但是也可以用于多分类问题,对于多分类问题的处理思想是:可以将其看做成二类分类问题,保留其中的一类,剩下的作为另一类。预测:根据模型,预测在不同自变量情况下,发生某种情况的概率大小。逻辑回归算法原理sigmod函数

sigmod函数

sigmod函数形如g(z)=1/(1+exp(-z)),从上面的sigmod函数可以看出,它的定义域在(-∞,+∞),而值域正好在[0,1]之间,而线性模型wx+b的值域是连续的,如果我们将线性模型的值域作为sigmod函数的定义域,那么就完成了由值到概率的转换,这就是sigmode函数特点。

线性函数(式1)

逻辑回归模型函数

看了sigmod函数,大家可能会有这样的疑问:逻辑回归模型和sigmod函数之间有什么关系吗?为了解答这个问题,我们先看下逻辑回归模型:

逻辑回归模型(式2)

这里Y{0,1}是输出,w和b是参数,w称为权值向量,b称为偏置。那么这里如何理解这个模型公式呢,首先逻辑回归分类是解决分类问题的,且解决的思想就是计算使得样本的属性属于类别1的概率(即Y=1),那么式1我们可以理解为概率分布函数,其中函数的自变量是线性模式(wx+b)。由于它计算的是概率值,那么值域必然在[0,1]中,故逻辑回归模型就是将线性模型的值域作为sigmod函数的定义域,从而解决了数值到概率的转换。那么有人可能会这样想,定义的式1和我们的wx+b有关系吗?这里,我们做一个证明,首先介绍几率的概念。一个事件的几率指的是该事件发生的概率与不发生的概率的比值。如果事件发生的概率为p,那么该事件的几率是p/(1-p),该事件的对数几率函数是:

几率定义(式3)

根据式3几率函数将式2带入得到式4:

将式2带入式3(式4)

可以从式4中看出,在逻辑回归模型中,输出Y=1的对数几率是输入x的线性函数,也就是说,考虑对输入x进行分类的线性函数w·x,其值域为实数域。

逻辑回归模型参数估计

通过上面的介绍,我们已经明白逻辑回归的由来和模型函数,接下来的任务就是求模型参数w和b,所以要定义损失函数,如下:

损失函数(式4)

损失函数的思想就是求得一组w和b使得预测值和真实值的误差平方和最小(最小二乘法),但是在将式1带入式4时发现此代价函数不是凸函数(局部有很多最小值),所以我们换一种思路,就有极大似然估计法估计w和b,即得到似然函数如下(式5):

似然函数(式5)

这个是似然函数的大致意思就是使得每一个样本都接近真实值的联合概率,或者说求一组w和b参数,使得当取样本中的每个x时,这个w和b使得函数的值最大(概率最大),即最大似然概率,为了求解,我们对似然函数取对数,即得到对数似然函数(式6):

对数似然(式6)

为了方便求解,对式6进一步化简得到式7(代价函数):

代价函数(式7)

然后通过梯度下降法更新模型参数w和b,使得似然函数的概率值最大,即式7值最小。求偏导数:

对w求偏导

对b求偏导

通过对w,x求偏导,得到参数更新模型,其中α为学习率:

参数更新模型

在scikit-learn中,logisticRegression实现了逻辑回归模型,我们将在下篇中演示用法。

标签: #python调用逻辑回归算法