逻辑回归python实现(随机增量梯度下降,变步长)

关于逻辑回归的学习,建议大家看看这篇blog,讲的很清楚:点击打开链接

代码实现是根据机器学习实战,照着代码自己来了一遍

逻辑回归,实际上就是对线性回归多增加了一个函数映射,使其值域由无穷区间映射到[0,1]区间

在线性回归中,估计函数为  其中delta是参数向量,x是输入样本的特征向量

而在逻辑回归中,估计函数实际上就是在线性回归的基础上,嵌套了一个sigmoid函数。

逻辑回归的估计函数为   其中,e的指数部分就是线性回归的输出,而可以看出,逻辑回归函数的值域是(0,1),并且图像过(0,1/2)这个点,图像在x=0处很陡峭。

也就是说,在逻辑回归中,我们能将h=0.5作为一个阀值,当估计值大于0.5时把样本分为1类,估计值小于0.5时把样本分为0类。那么只要我们得到了这个估计函数,就能够实现0-1分类了。


估计函数的求解,实际上就是对delta参数向量进行求解。在这里我使用的时梯度下降法,也就是先求出极大似然估计,然后求出极大似然估计的梯度,然后进行多次迭代,每次迭代将参数向量沿着梯度下降最陡峭的方向增加一个步长alpha。alpha如果过小,迭代的速度会很慢,但是如果alpha过大,容易使步子迈得太大,使得我们总是在结果附件徘徊。这里我使用的是变步长法,也就是一开始让步长尽量大,在迭代的过程中,慢慢缩小步长。

另外,我使用的是随机增量梯度下降法。所谓增量,就是指每一次迭代我只考虑一组样本来进行参数更新,而不是遍历所有样本。这样能够降低算法的时间复杂度,而且精确

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值