统计学习方法-Logistic(逻辑斯蒂)回归

reference: http://f.dataguru.cn/thread-128261-1-1.html

                        http://blog.tomtung.com/2011/10/logistic-regression

                       http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html

                      http://chen.yi.bo.blog.163.com/blog/#m=0

 

我们在做线性回归分析时,其实是用y=mx+b直线去拟合我们的样本点,如果样本点和直线拟合很好,我们就可以得出样本点的线性相关性很强,通常用决定系数R2来表示。在寻找拟合直线的方法是最小二乘法,其实质就是找样本点离直线距离的最小平方和。这个我在白话线性回归中已经讲到。前面我都参考KHAN的统计学视频,可惜的是logistic回归里面没有讲了,今天这篇文章主要参考的是《Logistic回归模型:方法与应用》王济川,郭志刚。

为什么要用logistic回归?

我们在线性回归分析时,有时会遇到因变量y不是连续值,而是离散的,很多情况是0-1变量。如分析顾客对于商品行为的导致的结果是买(1)还是不买(0),分析股票的各种数据,因变量也是买(1)、不买(0。这种因变量如果我们还是使用线性回归,得到的直线一定与样本拟合得不好。举个例子,我们考察选民年收入和给某个候选人投票的相关性,如果我用线性回归来做。设回归方程为y=mx+b+e(为了严谨e为方程的干扰值,与x无关,服从正态分布,平均值为0)。显然,y=0,表示未投票;y=1表示投票。一定要记住由于e的存在,yi的值只能是一个统计值,也许每次的yi都不一样(夸张了点)。我们可以得到任意yi期望E(yi|xi)=E(mxi+b+e)= E(mxi+b)+E(e)= E(mxi+b)+0= mxi+b

yi 的值取(01),yi期望E(yi|xi)= P(yi=1|xi),其实就是yi=1的条件概率(比如有5个取值0,1,1,0,1,平均值为0.6,也就是y1的概率为0.6)。因此因变量为二分类的线性规划模型又叫线性概率模型(linear probability model)。如果模型是线性的,很显然,如果xi是一个很大的值(如年收入1亿),那么我们得到的yi很可能大于1,相反如果年收入是一个很小的值(如-100000,yi的值很可能得到一个小于0的值。实际上,这很可能是个分段函数模型,这对于线性回归就不方便计算了。

什么是Logistic回归模型

但是,有一点可以确定,yi=1的概率P(yi=1|xi)xi的应该是一个单调递增关系,用非线性模型来描述也许更加准确。这个单调关系应该是这样,xi增加时P(yi=1|xi)随之增加,到达一定的区域,这种增加时很小的,比如xi=1000000后,xi再继续增加,p的增加就不那么明显了,从统计的角度,P只能无限接近1,不能等于1。这种单调关系用S形状的曲线描述也许很合适(拟合得更好),这就是logitic函数的曲线。我们可以将事件发生的概率写成:

P(yi=1|xi)=1/1+exp(-mx-b)  1

这是一个非线性函数,我们可以将其转化为一个线性函数

事件不发生的概率为P(yi=0|xi)=1-P(yi=1|xi)=1 - 1/1+exp(-mx-b)

事件发生概率和不发生概率之比为

p/(1-p) =exp(mx+b)两边去对数得到

ln(p/(1+p))=mx+b  2

1)(2)都是Logistic回归模型。

我们求解该模型,实际上就是求参数m,b

pi= P(yi=1|xi)是给定xi条件下y=1的概率,同样条件下得到y=0的概率为1-pi,那么,得到一个观测值(Pi=0或者1)概率为Pi=pi^yi*(1-pi)^(1-yi)。取n个观测值(n个不同xi)的分布概率为npi^yi*(1-pi)^(1-yi)相乘,表示为ln(θ)=Π(pi^yi*(1-pi)^(1-yi)),这就是n个观测值的似然分布函数。我们求解模型就是求解该函数最大值的参数估计值(mb)。

 

————————————————————————————————————————————————————

Logistic 回归解决的并不是回归问题,而是分类问题,即目标变量(target variable)的值是离散而非连续的。这时目标变量也可称为标签(label)。如果仍用线性回归硬搞,得到的结果会非常不靠谱。

我们先考虑简单的情况:数据点只有 0 和 1 两个标签(binary classification),即[Math Processing Error] ,且大致上是线性可分的(linearly separable)。如图:

那么现在问题就是要找到一个[Math Processing Error] ,使得直线[Math Processing Error] 1 能够将上面图中的 positive 和 negative 两类数据点“分开”;这样的一条直线称为决策边界(decision boundary)。 ——但具体什么叫“分开”?或者说,如果已知[Math Processing Error] ,对于一个标签未知的数据点[Math Processing Error] ,怎么判断它是 positive 还是 negative?

直观上看,在给定[Math Processing Error][Math Processing Error] 的情况下,[Math Processing Error] 应该满足一个0-1 分布,即

[Math Processing Error]

其中[Math Processing Error] 应该满足:

  1. 首先[Math Processing Error]
  2. [Math Processing Error] ,我们可以认为[Math Processing Error] 的可能性相对更大,即[Math Processing Error] ,且如果数据点离边界越远,即[Math Processing Error] 越大,[Math Processing Error] 也应该越大。
  3. 反之,若[Math Processing Error] ,则
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值