Logistic回归

Logistic回归本质上是在对现有数据的分类边界建立回归公式,以此进行分类。这一点与支持向量机(SVM)类似,SVM也是在最优化分类边界。但SVM选择边界的原则是使边界离支持向量(数据集中离边界最近的点)尽可能远,而Logistic回归是选择最佳拟合曲线,即使拟合结果与标记结果的残差平方和最小。Logistic回归使用Sigmoid函数作为分布函数,将在正无穷到负无穷范围内的输入集X映射到[0,1]集合。Sigmoid函数表达式如下,当z<0,f(x)接近于0,z>0,f(x)接近于1。函数值即为P(Y=1|X)的条件概率。所以只要找到一组回归系数w,与向量x相乘,再按列将它们加起来作为z带入sigmoid函数,函数值>0,5则为1类,反之为0类。Sigmoid函数图像类似于阶跃函数,只是曲线在跳跃点附近更为圆滑,它是一个任意阶可导的凸函数,所以可以用梯度上升法求它的最优参数。

  • 最大熵模型

在介绍求解Logistic回归的最佳回归系数之前有必要了解一下什么是最大熵模型。在学习概率模型时,在所有可能的概率分布中,熵最大模型被证明是最好的。在满足约束条件的前提下,熵越大,则表明模型中其他的不确定部分都是等可能的。熵最大模型的学习过程可以简单表示成下面的流程图:

对偶函数极大化问题已被证明等价于最大熵模型的极大似然估计,所以可以像SVM中一样选择算法直接求解对偶函数极大化问题,也可以求解对数似然函数的极大值问题。Logistic回归问题中,常使用梯度上升算法求解对数似然函数极大值问题。

  • 梯度上升法确定Logistic回归最佳回归系数

梯度上升法的思想是:要找到函数的最大值,最好的方法是沿着函数的梯度方向向上探寻。迭代公式可以表示为:w: w = w +  a * delta L ,其中a为步长,delta L为梯度。对数似然函数L(w)以及梯度的推导如下:

Logistic回归的python实现代码如下:

def gradAscent(dataSet, labels, cycles = 150, alpha = 0.01):
	dataSet = mat(dataSet)
	y = mat(labels).T
	k = dataSet.shape[1]
	w = ones([k,1])
	for i in range(cycles):
		delta = dataSet.T * (y - sigmoid(dataSet * w))
		w = w + alpha * delta
	return w



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值