R语言与机器学习学习笔记(分类算法)(6)logistic回归

写在前面的废话

2014,又到了新的一年,首先祝大家新年快乐,也感谢那些关注我的博客的人。

现在想想数据挖掘课程都是去年的事了,一直预告着,盘算着年内完工的分类算法也拖了一年了。

本来打算去年就完成分类算法,如果有人看的话也顺带提提关联分析,聚类神马的,

可是,

借着新年新气象的借口来补完这一系列的文章,

可是,这明明就是在发

尽管这个是预告里的最后一篇,但是我也没打算把这个分类算法就这么完结。尽管每一篇都很浅显,每个算法都是浅尝辄止的,在deep learning那么火的今天,掌握这些东西算起来屌丝得不能再屌丝了。考虑到一致性与完备性,最后补上两篇一样naive的:组合方法提高分类效率、几种分类方法的绩效讨论。希望读到的人喜欢。

算法六:logistic回归

        由于我们在前面已经讨论过了神经网络的分类问题(参见《R语言与机器学习学习笔记(分类算法)(5)》),如今再从最优化的角度来讨论logistic回归就显得有些不合适了。Logistic回归问题的最优化问题可以表述为:寻找一个非线性函数sigmoid的最佳拟合参数,求解过程可使用最优化算法完成。它可以看做是用sigmoid函数作为二阈值分类器的感知器问题。

       今天我们将从统计的角度来重新考虑logistic回归问题。

一、logistic回归及其MLE

       当我们考虑解释变量为分类变量如考虑一个企业是否会被并购,一个企业是否会上市,你的能否考上研究生这些问题时,考虑线性概率模型P(yi =1)= β0 + β1xi 显然是不合适的,它至少有两个致命的缺陷:1、概率估计值可能超过1,使得模型失去了意义;(要解决这个问题并不麻烦,我们将预测超过1的部分记为1,低于0的部分记为0,就可以解决。这个解决办法就是计量里有一定历史的tobit模型)2、边际效应假定为不变,通常来说不合经济学常识。考虑一个边际效应递减的模型(假定真实值为蓝线),可以看到线性模型表现很差。


        但是sigmoid函数去拟合蓝线确实十分合适的。于是我们可以考虑logistic回归模型:


         假定有N个观测样本Y1,Y2,…,YN,设P(Yi=1|Xi)=π(Xi)为给定条件Xi下得到结果Yi=1的条件概率;而在同样条件下得到结果Yi=0的条件概率为P(Yi=0|Xi)=1-π(Xi),于是得到一个观测值的概率P(Yi)=π(Xi)Yi[1-π(Xi)]1-Yi假设各观测独立,对logistic回归模型来说,其对数似然函数为:


        于是便可求解出logistic模型的MLE。

二、logit还是probit?

       虽说sigmoid函数对边际递减的模型拟合良好,但是我们也要知道S型函数并非仅sigmoid函数一个,绝大多数的累积分布函数都是S型的。于是考虑F-1(P)(F为标准正态分布的累积分布函数)也不失为一个很好的选择。像这样的,对概率P做一点变换,让变换后的取值范围变得合理,且变换后我们能够有办法进行参数估计的,就涉及到广义线性模型理论中的连接函数。在广义线性模型中我们把log(P/(1-P))称为logit,F-1(P)(F为标准正态分布的累积分布函数)称为probit。那么这里就涉及到一个选择的问题:连接函数选logit还是probit?logistic回归认为二分类变量服从伯努利分布,应当选择logit,而且从解释的角度说,p/(1-p)就是我们常说的odds ratio,也就是软件报告中出现的OR值。

             但是probit也有它合理的一面,首先,中心极限定理告诉我们,伯努利分布在样本够多的时候就是近似正态分布的;其次,从不确定性的角度考虑,probit认为我们的线性概率模型服从正态分布,这也是更为合理的。

         我们来看一下经过变换后,自变量和P的关系是什么样子的:


        如果你确实想知道到底你的数据用哪一个方法好,也不是没有办法,你可以看一下你的残差到底是符合logit函数呢还是符合probit

  • 5
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值