logistics回归理解
多元回归方程:假设有一个因变量y和一组自变量x1, x2, x3, ... , xn,其中y为连续变量,我们可以拟合一个线性方程:
y =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn
如果y为二分类变量,只能取值0或1,那么线性回归方程就会遇到困难: 方程右侧是一个连续的值,取值为负无穷到正无穷,而左侧只能取值[0,1],无法对应。为了继续使用线性回归的思想,统计学家想到了一个变换方法,就是将方程右边的取值变换为[0,1]。最后选中了Logistic函数:逻辑回归,可以说是在线性回归的基础上加上一个sigmoid函数,将线性回归产生的值归一化到[0-1]区间内。sigmoid函数如下:
y = 1 / (1+e-x)
这是一个S型函数,值域为(0,1),能将任何数值映射到(0,1),且具有无限阶可导等优良数学性质。
我们将线性回归方程改写为:
y = 1 / (1+e-z),
其中,z =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn
此时方程两边的取值都在0和1之间。
进一步数学变换,也就是可以写为:
Ln(y/(1-y)) =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn
Ln(y/(1-y))称为Logit变换。我们再将y视为y取值为1的概率p(y=1),因此,1-y就是y取值为0的概率p(y=0),所以上式改写为:
p(y=1) = ez/(1+ez),
p(y=0) = 1/(1+ez),
其中,z =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn.
(你看吼,你需要估计某件事发生的概率,这时候你有大量的训练样本,所以你想用一个多元回归来估计这个事儿,但是你多元回归所算出来的值特别多,而你的概率只处于0和1之间,这时候吧你就需要logistics了,)
接下来就可以使用”最大似然法”估计出各个系数β。
本文基本借鉴:http://blog.sina.com.cn/s/blog_44befaf60102vznn.html
这个出自:http://blog.csdn.net/YoYoDelphine/article/details/52888276
(你看吼,你所估计的跟真实值肯定有出入吧,这时候就需要找最优化的各个系数β吧,那你怎么找呢,就需要一个代价函数,代价函数分很多,求参有多种方法。比如最小二乘,比如最大然,比如交叉熵,这里用极大然是为了使这件事发生的概率最大化,也就是已知x,求β)
所谓参数估计就是:对未知参数θ进行估计时,在参数可能的取值范围内选取,使“样本获得此观测值x1,x2...,xn”的概率最大的参数θ^作为θ的估计,这样选定的θ^有利于x1,x2...,xn”的出现。也就是说在已知数据集(结果)和模型(分布函数)的情况下,估计出最适合该模型的参数。
举个例子:
假设你有一枚硬币,随机抛10次;现在的结果是6次正面。我们都知道,抛一枚硬币,正面朝上和反面朝上的概率均是θ=0.5;但前提时,这是在大量的实验(抛硬币)情况下才有的结论。那在我们这个情况下,参数θ到底取何值时才能使得出现6次正面的肯能性最大呢?
详情参见:http://blog.csdn.net/The_lastest/article/details/78761577

也就是n个独立的样本出现的似然函数为(因为每个样本都是独立的,所以n个样本出现的概率就是他们各自出现的概率相乘):
那最大似然法就是求模型中使得似然函数最大的系数取值θ*。这个最大似然就是我们的代价函数(cost function)了。
(截自李航《统计学习方法》)
(你看吼,这时候带代价函数,这里的代价函数就是这个事儿所有属性发生的概率*不发生的概率,就需要求β,然后需要用到梯度下降法对于每次的β迭代,也就是求导,对于极大似然函数求导,导数的方向也就是最好的下降方向 ,然后我们令该导数为0,你会很失望的发现,它无法解析求解。不信你就去尝试一下。所以没办法了,只能借助高大上的迭代来搞定了。这里选用了经典的梯度下降算法。
)


(θ求完导之后发现是θ=θ1+步长*(错误率)*本来的xi,下面就是优化了,在样本容量非常大的时候,你要随机选则,节省时间,然后就是逐步减小步长,这个在牛顿法中可以理解,迭代次数越高,越合适)
代码参考:http://blog.csdn.net/zouxy09/article/details/20319673
本文仅作作者笔记,没有任何冒犯的意思。。。
logistics回归理解的更多相关文章
- logistics回归简单应用——梯度下降,梯度上升,牛顿算法(一)
警告:本文为小白入门学习笔记 由于之前写过详细的过程,所以接下来就简单描述,主要写实现中遇到的问题. 数据集是关于80人两门成绩来区分能否入学: 数据集: http://openclassroom.s ...
- logistics回归简单应用(二)
警告:本文为小白入门学习笔记 网上下载的数据集链接:https://pan.baidu.com/s/1NwSXJOCzgihPFZfw3NfnfA 密码: jmwz 不知道这个数据集干什么用的,根据直 ...
- 机器学习算法的Python实现 (1):logistics回归 与 线性判别分析(LDA)
先收藏............ 本文为笔者在学习周志华老师的机器学习教材后,写的课后习题的的编程题.之前放在答案的博文中,现在重新进行整理,将需要实现代码的部分单独拿出来,慢慢积累.希望能写一个机器学 ...
- 机器学习实战-Logistics回归
Logistics回归:实战,有两个特征X0,X1.100个样本,进行Logistics回归 1.导入数据 def load_data_set(): """ 加载数据集 ...
- Popular generalized linear models|GLMM| Zero-truncated Models|Zero-Inflated Models|matched case–control studies|多重logistics回归|ordered logistics regression
============================================================== Popular generalized linear models 将不同 ...
- logistics回归
logistic回归的基本思想 logistic回归是一种分类方法,用于两分类问题.其基本思想为: a. 寻找合适的假设函数,即分类函数,用以预测输入数据的判断结果: b. 构造代价函数,即损失函数, ...
- Deeplearning——Logistics回归
资料来源:1.博客:http://binweber.top/2017/09/12/deep_learning_1/#more——转载,修改更新 2.文章:https://www.qcloud.com/ ...
- 机器学习-对数logistics回归
今天 学习了对数几率回归,学的不是很明白x1*theat1+x2*theat2...=y 对于最终的求解参数编程还是不太会,但是也大致搞明白了,对数几率回归是由于线性回归函数的结果并不是我们想要的,我 ...
- 多分类Logistics回归公式的梯度上升推导&极大似然证明sigmoid函数的由来
https://blog.csdn.net/zhy8623080/article/details/73188671 也即softmax公式
随机推荐
- JS基础——原型和原型链
1.相关知识点 (1)构造函数 (函数名首字母大写表示构造函数) function Foo(name,age){ this.name = name; this.age = age; this.cla ...
- Shiro与基本web环境整合登陆验证实例
1. 用maven导入Shiro依赖包 <dependency> <groupId>org.apache.shiro</groupId> <artifactI ...
- 采用自定义协议代替OCX组件
事情起源:公司视频播放一直是采用的嵌入浏览器组件实现视频的预览回放等功能.这种实现方式要求客户使用IE浏览器. 最近上线项目使用Html 5开发,要求IE11.项目中使用了视频播放功能,如果全部升级到 ...
- 编译在docker alpine中可用的go程序
get docker image docker pull golang build docker run -it --rm -v `pwd`:/root/src -w /root/src golang ...
- git push时报错refusing to merge unrelated histories
1. 删除本地项目中的.git目录,然后向远程仓库提交代码的时候,重新配置后再次提交.会有冲突. 解决方式: git remote add origin [//your giturl] git pul ...
- 用Itextsharp 组件导出PDF 的文档的方法
Itextsharp 是一个很强大,开源的,轻量级的 PDF 生成组件,官方网上好像没有相应的API 说明文档,以下是在工作中使用的心得与体会,并附上源码,功能包含了pdf 的创建,table 的创建 ...
- Android 开发 音视频从入门到提高 任务列表 转载
<Android 音视频从入门到提高 —— 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 Vi ...
- (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境
通过前面的学习,对webpack有了更深的认识,故此节我们就利用前面相关知识自己动手用webpack构建一个React的开发环境,就算是一个小案例吧. 注:此处使用的开发工具是Webstorm. 1. ...
- 常见java日志系统的搭配详解:关于slf4j log4j log4j2 logback jul jcl commons-logging jdk-logging
先看一张图: 是不是有点晕, 晕就对了.这个仅仅是 slf4j 的情况,实际上, 我们不仅要接触到 slf4j ,有时候还会接触其他的日志系统.且看下文分解. 1 直接使用各个日志系统 1.1 直接使 ...
- python之工厂函数
python之工厂函数 本人也是小白一个,最近在学习python工厂函数时随便在网上搜了搜,发现许多人对工厂函数的理解存在误区,同时也是为了整理和记录自己的思路,写下本片博文. 工厂函数顾名思义就是一 ...