码迷,mamicode.com
首页 > 编程语言 > 详细

随机梯度下降的逻辑回归算法(SGDLR)

时间:2014-10-31 21:53:01      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   使用   for   sp   

由于第一次实验的实验报告不在这台机器,先写这一算法吧。

SGDLR(the Stochastic Gradient Descent for Logistic Regression),要讲解这一算法,首先要把名字拆为几块。

1 随机   2 梯度下降   3逻辑回归

先贴一篇文章:http://blog.csdn.net/zouxy09/article/details/20319673

这篇文章中解释的还不错。

其实这一算法,通俗来讲是这样子的:

1、手中肯定有很多带有label标记的数据,这是训练集。

2、我们期望能够建立一个带参数的式子,来计算某种情况出现的概率,以便于后面预测测试集的类别的时候,计算它在每一类的概率,取概率大的为自己的类。

3、由于sigmoid函数的优势:连续,光滑,严格单调,关于(0,0.5)中心对称,形如下图,

bubuko.com,布布扣

bubuko.com,布布扣  公式①

利用下面这个式子变换得到:

bubuko.com,布布扣

所以我们只需要计算出参数的值,就可以用公式①计算概率。

4、所有在训练集中出现的样本,已经真实存在了,所以它们带入计算出的概率应该是最大的,理想情况为1。根据这一特征来计算参数值。

5、式子并不是一个线性可解的,需要使用极大似然,这一算法不再赘述请自行谷歌。但是后来发现求参数的偏导数的时候,导数为0线性不可解,这时候就要用到梯度下降的算法。

6、所谓梯度下降的算法,事实上是从一个起点,一步步的试探,来回震荡,直到找到一个最低点。迭代公式如下:(这里的lamda是步长,自己设定,参数的初值也是自己设定)

bubuko.com,布布扣

普通的梯度下降需要每次都用所有样本加和,然后迭代到收敛。

7、那么随机梯度下降就是在普通的情况下,每次只迭代一个样本(注意:这个样本必须是随机抽的,如果有偏向,最后的结果会很难看),直到收敛。

8、利用以上的迭代公式可以得到参数的值。

9、如果存在多个分类,那么可以训练多个分类器,一类一个,每一个训练样本都只属于下面两类:“是这类”和“不是这类”。训练的时候也是训练N套参数。

对于一个测试样本,带入每一个分类器计算一遍概率,以概率最大的分类有效。

 

该算法依旧可以使用十次交叉验证检验效果。

 

随机梯度下降的逻辑回归算法(SGDLR)

标签:des   style   blog   http   io   ar   使用   for   sp   

原文地址:http://www.cnblogs.com/lilylee/p/4065838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!