逻辑回归概念
1、概念
逻辑回归(Logistic Regression)是机器学习中的一种分类模型,由于算法的简单和高效,在实际中应用非常广泛应用。先看实际生活和工作中遇到的以下问题:
- 预测一个学生是否通过考试;
- 判断用户的性别;
- 预测用户是否会购买给定的品类;
- 判断一条评论是正面的还是负面的;
这些都可以看做是分类问题,更准确地,都可以看做是二分类问题。
逻辑回归(logistic)是一种广义线性回归(generalized linear model),与多重线性回归分析有很多相同之处。它们的模型形式基本上相同,都具有 w‘x+b,其中w和b是待求参数,其区别在于他们的因变量不同,多重线性回归直接将w‘x+b作为因变量,即y =w‘x+b,也就是说线性回归中的y就是预测值,就是结果值。但是逻辑回归是二分类问题,对预测的结果只y需要再进行一次函数处理,以达到是或者否,0或者1的结果,也就是逻辑回归中y任然是因变量。
这里我们套用Andrew Ng老师的课件中的例子,下图中X为数据点肿瘤的大小,Y为观测结果是否是恶性肿瘤。通过构建线性回归模型,如hθ(x)所示,构建线性回归模型后,我们设定一个阈值0.5,预测hθ(x)≥0.5的这些点为恶性肿瘤,而hθ(x)<0.5为良性肿瘤。
但很多实际的情况下,我们需要学习的分类数据并没有这么精准,比如说上述例子中突然有一个不按套路出牌的数据点出现,如下图所示:
你看,现在你再设定0.5,这个判定阈值就失效了,而现实生活的分类问题的数据,会比例子中这个更为复杂,而这个时候我们借助于线性回归+阈值的方式,已经很难完成一个泛华能力很好的分类器了。
在这样的场景下,逻辑回归就诞生了。它的核心思想是,如果线性回归的结果输出是一个连续值,而值的范围是无法限定的,那我们有没有办法把这个结果值映射为可以帮助我们判断的结果呢。而如果输出结果是 (0,1) 的一个概率值,这个问题就很清楚了。我们在数学上找了一圈,还真就找着这样一个简单的函数了,就是很神奇的阶跃函数sigmoid函数\如下):
如果把sigmoid函数图像画出来,是如下的样子:
Sigmoid Logistic Function从函数图上可以看出,函数y=g\(z\)在z=0的时候取值为1/2,而随着z逐渐变小,函数值趋于0,z逐渐变大的同时函数值逐渐趋于1,而这正是一个概率的范围。
所以我们定义线性回归的预测函数为Y=WTX,那么逻辑回归的输出Y= g(WTX),其中y=g(z)函数正是上述sigmoid函数(或者简单叫做S形函数。
逻辑回归其实仅为在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,逻辑回归成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。对于多元逻辑回归,可用如下公式拟合分类,y={0,1}为分类结果。
所以说上面的logistic回归就是一个线性分类模型,它与线性回归的不同点在于:将线性回归输出的很大范围的数(例如从负无穷到正无穷)压缩到0和1之间,这样输出值表达为“可能性”才能说服广大民众。当然了,把大值压缩到这个范围还有个很好的好处,就是可以消除特别冒尖的变量的影响。而实现这个伟大的功能其实就只需要平凡一举,也就是在输出加一个logistic函数。另外,对于二分类来说,可以简单的认为:如果样本x属于正类的概率大于0.5,那么就判定它是正类,否则就是负类。
简单来说,LogisticRegression 就是一个被logistic方程归一化后的线性回归,仅此而已。
2、逻辑回归的边界判断
文章参考:http://blog.csdn.net/han\_xiaoyang/article/details/49123419
我们现在再来看看,为什么逻辑回归能够解决分类问题。这里引入一个概念,叫做判定边界,可以理解为是用以对不同类别的数据分割的边界,边界的两旁应该是不同类别的数据。
从二维直角坐标系中,举几个例子,大概是如下这个样子:
有时候是这个样子:
甚至可能是这个样子:
上述三幅图中的红绿样本点为不同类别的样本,而我们划出的线,不管是直线、圆或者是曲线,都能比较好地将图中的两类样本分割开来。这就是我们的判定边界,下面我们来看看,逻辑回归是如何根据样本点获得这些判定边界的。
我们依旧借用Andrew Ng教授的课程中部分例子来讲述这个问题。
回到sigmoid函数,我们发现:
当g\(z\)≥0.5时, z≥0;
对于hθ\(x\)=g\(θTX\)≥0.5, 则θTX≥0, 此时意味着预估y=1;
反之,当预测y = 0时,θTX<0;
所以我们认为θTX =0是一个决策边界,当它大于0或小于0时,逻辑回归模型分别预测不同的分类结果。
先看第一个例子hθ\(x\)=g\(θ0+θ1X1+θ2X2\),其中θ0 ,θ1 ,θ2分别取-3, 1, 1。则当−3+X1+X2≥0时, y = 1; 则X1+X2=3是一个决策边界,图形表示如下,刚好把图上的两类点区分开来:
例1只是一个线性的决策边界,当hθ\(x\)更复杂的时候,我们可以得到非线性的决策边界,例如:
这时当x12+x22≥1时,我们判定y=1,这时的决策边界是一个圆形,如下图所示:
所以我们发现,理论上说,只要我们的hθ\(x\)设计足够合理,准确的说是g\(θTx\)中θTx足够复杂,我们能在不同的情形下,拟合出不同的判定边界,从而把不同的样本点分隔开来。