一、什么是逻辑回归

logisticRegression又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。

例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。

以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性。

逻辑回归虽然带有回归字样,但是逻辑回归属于分类算法(因为通常情况下我们使用逻辑回归是把它当做分类算法来用的,你可以这样理解逻辑回归是用回归的思想解决分类问题)。逻辑回归可以进行多分类操作,但由逻辑回归算法本身性质决定其更常用于二分类。

事实上,对于多分类问题,逻辑回归的算法本身是不支持的(它同KNN算法是不同的,KNN算法天生就支持多分类问题),但是我们可以通过使用一些其他的技巧对其进行改进使得我们可以运用逻辑回归的算法解决多分类问题。

逻辑回归的公式:




逻辑回归 亚组分析 逻辑回归分析方法_逻辑回归算法


其中,Y为决策值,x为特征值,e为自然对数。

Y(x)的图形如下:


逻辑回归 亚组分析 逻辑回归分析方法_多分类_02


二、逻辑回归推导

逻辑回归是一种简单,常见的二分类模型,通过输入未知类别对象的属性特征序列得到对象所处的类别。由于Y(x)是一个概率分布函数,因此对于二分类而言,离中心点的距离越远,其属于某一类的可能性就越大。

对于常见二分类,逻辑回归通过一个区间分布进行划分,即如果Y值大于等于0.5,则属于正样本,如果Y值小于0.5,则属于负样本,这样就可以得到逻辑回归模型,判别函数如下:


逻辑回归 亚组分析 逻辑回归分析方法_二分类_03


在模型参数w与b没有确定的情况下,模型是无法工作的,因此接下来就是在实际应用期间最重要的是模型参数w和b的估计。

其代价函数为:


逻辑回归 亚组分析 逻辑回归分析方法_逻辑回归 亚组分析_04


给定y值为1时,代价函数曲线横坐标为决策函数Y(x)的值越接近1,则代价越小,反之越大。当决策函数Y(x)的值为1时,代价为0。类似的,当给定y值为0时有同样的性质。

如果将所有m个样本的代价累加并平均,就可以得到最终的代价函数:


逻辑回归 亚组分析 逻辑回归分析方法_二分类_05


由于y的取值为0或1,结合上面两个公式可以得到:


逻辑回归 亚组分析 逻辑回归分析方法_二分类_06


这样就得到了样本的总的代价函数,代价越小表明所得到模型更符合真实模型。当损失函数最小的时候,就得到了所求参数。关于损失函数的求解,可以通过梯度下降法求解,先设置一个学习率。从1到n,更新:


逻辑回归 亚组分析 逻辑回归分析方法_逻辑回归算法_07


其中:


逻辑回归 亚组分析 逻辑回归分析方法_逻辑回归 亚组分析_08


重复更新步骤,直到代价函数的值收敛为止。对于学习率的设定,如果过小,则可能会迭代过多的次数而导致整个过程变得很慢;如果过大,则可能导致错过最佳收敛点。所以,在计算过程中要选择合适的学习率。

三、Sigmoid函数

Sigmoid函数又叫Logistic函数,它在机器学习领域有极其重要的地位。

逻辑回归(LR)就是基于Sigmoid函数实现的。LR模型的主要任务是给定一些历史的{X,Y},其中X是样本n个特征值,Y的取值是{0,1}代表正例与负例,通过对这些历史样本的学习,从而得到一个数学模型,给定一个新的X,能够预测出Y。LR模型是一个二分类模型,即对于一个X,预测其发生或不发生。但事实上,对于一个事件发生的情况,往往不能得到100%的预测,因此LR可以得到一个事件发生的可能性,超过50%则认为事件发生,低于50%则认为事件不发生

从LR的目的上来看,在选择函数时,有两个条件是必须要满足的:

1. 取值范围在0~1之间。

2. 对于一个事件发生情况,50%是其结果的分水岭,选择函数应该在0.5中心对称。


逻辑回归 亚组分析 逻辑回归分析方法_二分类_09


import numpy as np
import matplotlib.pyplot as plt

def sigmoid(t):
    return 1/(1+np.exp(-t))

x=np.linspace(-10,10,500)
y=sigmoid(x)
plt.plot(x,y)
plt.show()


逻辑回归 亚组分析 逻辑回归分析方法_代价函数_10