logistic regression浅析
最近开始学习机器学习的相关理论知识,准备把自己的整个学习心得整理汇集成博客,一来可以督促自己,二来可以整理思路,对问题有一个更加透彻的理解,三来也可以放在网上和大家分享讨论,促进交流。
由于这次的学习过程主要是以数学理论以及对应的编程为主,因此,整个过程中,我将以Kaggle上的Titanic上的数据作为练习背景。
今天以logistic regression为主,主要包括理论部分以及对应的编程实验结果。
理论部分
logistic regression主要应用于二值分类问题,首先我们需要引入伯努利分布的概念。
- 伯努利分布又称两点分布或者是0-1分布
- 伯努利实验是只有两种可能结果的单次随机实验
- 进行一次伯努利实验,成功(y=1)的概率为p, 失败(y=0)的概率为1-p,则称随机变量y服从伯努利分布
- 伯努利分布的离散概率分布函数可以表达为
- 这里可以参考一下http://blog.csdn.net/michael_r_chang/article/details/39188321,有关于伯努利分布,二项分布,多项分布的基本介绍。
有了上述概念之后,我们可以引入logistic regression的基本概念。logistic regression认为,在我们对两类事物进行分类的时候(如y=1和y=0),若出现特征x,则
上式即所谓的logistic分布或者是sigmoid分布,其一般通式为
注意
logtistic回归的任务是给定一系列的训练样本集合,并假设y=1发生的概率可以由logistic分布来进行表达,求出模型系数
以便进行将来的预测。
上述问题可以通过极大似然估计来进行求解,即
经过负对数变换之后,即可最小化如下公式
利用最速下降算法,在第k次迭代
处的梯度可以表示为
因此系数可以进行如下更新:
实验部分:
- 如果每次只随机选择其中的某一个样本计算梯度并进行模型更新,就是所谓的随机梯度下降算法(stochastic gradient descent)
- 如果每次选择多个样本同时计算梯度并进行模型更新,就是所谓的mini-batch算法
- 如果每次选择所有的样本计算梯度并进行模型更新,就是所谓的batch descent算法
实验中我们将研究batch数目(即将所有的样本均分成多少份进行梯度计算)以及迭代步长对速度的影响

如上图所示,迭代步长和batch数目对收敛速度都有很大的影响,一般来说,迭代步长越大,batch数目越多,速度就越快,但是当迭代步长和batch数目同时过大的时候,算法会出现不稳定的情况,如上图的蓝实线所示。
关于迭代步长的影响很好理解,因为最速下降中,每一次沿着梯度方向走的太短,则需要很多步才可以对模型产生足够的更新,反之,如果每一次沿着梯度方向走得太远,则可能超过了当前所能够走的最大距离,目标函数不一定变小。
关于batch数目的影响,总的来说,是希望利用每一个小样本子集所计算出来的梯度和利用全部样本的所计算出来的梯度方向近似,如此便可以利用相对小的计算量达到足够准确的梯度方向,从而减少计算时间。但是如果batch数目过多,则每个子集中的样本过少,无法进行有效近似,也就是近似梯度方向不够准确和稳定,从而出现上述的不稳定现象。
可以考虑在迭代过程中不断地减小迭代步长和batch数目来进行综合,确保开始的快速减小和后来的算法稳定性。
注意:在利用梯度方向进行更新的时候,最好对计算出来的梯度进行归一化,便于选择迭代步长。
logistic regression浅析的更多相关文章
- 逻辑回归 Logistic Regression
逻辑回归(Logistic Regression)是广义线性回归的一种.逻辑回归是用来做分类任务的常用算法.分类任务的目标是找一个函数,把观测值匹配到相关的类和标签上.比如一个人有没有病,又因为噪声的 ...
- logistic regression与SVM
Logistic模型和SVM都是用于二分类,现在大概说一下两者的区别 ① 寻找最优超平面的方法不同 形象点说,Logistic模型找的那个超平面,是尽量让所有点都远离它,而SVM寻找的那个超平面,是只 ...
- Logistic Regression - Formula Deduction
Sigmoid Function \[ \sigma(z)=\frac{1}{1+e^{(-z)}} \] feature: axial symmetry: \[ \sigma(z)+ \sigma( ...
- SparkMLlib之 logistic regression源码分析
最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其 ...
- [OpenCV] Samples 06: [ML] logistic regression
logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...
- Stanford机器学习笔记-2.Logistic Regression
Content: 2 Logistic Regression. 2.1 Classification. 2.2 Hypothesis representation. 2.2.1 Interpretin ...
- Logistic Regression vs Decision Trees vs SVM: Part II
This is the 2nd part of the series. Read the first part here: Logistic Regression Vs Decision Trees ...
- Logistic Regression Vs Decision Trees Vs SVM: Part I
Classification is one of the major problems that we solve while working on standard business problem ...
- Logistic Regression逻辑回归
参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...
随机推荐
- 关于QQ的NABCD模型
关于QQ的NABCD模型 N--Need 随着电脑的普及,人们在网络上进行交流的时间越来越多,由于现有的交流工具还不是那么的完善,还不能够完全满足人们在交流时的需求.因此为了满足人们更多的需求,我们设 ...
- 软件工程实践作业2 --梭哈游戏(java) 实践报告
一,题目简介: 1.创建一副扑克牌 7------k 加入到集合对象中2.对扑克牌洗牌3.定义参与游戏的玩家的人,通过键盘输入,限定人数2-54.人数符合要求继续执行,不符合退出5.对玩家发牌,每个人 ...
- tftp服务、串口工具minicom
linux下安装tftp服务 参考这位仁兄的经验 确实百度上很多关于配置tftp服务的方法,但是这篇文章的介绍真的是很精简,对于一个刚接触纯linux环境的小白来说是很舒服的一件事. 首先是安装tft ...
- Laravel - 1
Laravel - 1 Laravel是一个很强大又非常优雅的php框架,但是Laravel的很多组件都是由社区协作的结果,Composer是php开发的一个依赖管理工具,但是墙把绝大多数的开发者堵在 ...
- Memcached分布式缓存快速入门
一.从单机到分布式 走向分布式第一步就是解决:多台机器共享登录信息的问题. •例如:现在有三台机器组成了一个Web的应用集群,其中一台机器用户登录,然后其他另外两台机器共享登录状态? •解决1:Asp ...
- delphi try except语句 和 try finally语句用法以及区别
try//尝试执行{SomeCode} except//出错的时候执行, Except有特定的错误类型 {SomeCode} end; try//尝试执行{SomeCode} finally//无论如 ...
- 一本通1587【例 3】Windy 数
1587: [例 3]Windy 数 时间限制: 1000 ms 内存限制: 524288 KB 题目描述 原题来自:SCOI 2009 Windy 定义了一种 Windy 数:不含前 ...
- BZOJ3123[Sdoi2013]森林——主席树+LCA+启发式合并
题目描述 输入 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负 ...
- BZOJ2724 [Violet]蒲公英(分块)
区间众数.分块,预处理任意两块间所有数的众数,和每块中所有数的出现次数的前缀和.查询时对不是整块的部分暴力,显然只有这里出现的数可能更新答案.于是可以优美地做到O(n√n). #include< ...
- webservice 测试页面
转载:http://www.cnblogs.com/JuneZhang/archive/2013/01/24/net.html 解决WebService 测试窗体只能用于来自本地计算机的请求 问题: ...