Python Logistic回归--抛去复杂公式的简单理解

本文详细解析Python逻辑回归中梯度上升法的工作原理。解释了梯度的数学含义,如何根据梯度调整权重以求损失函数的最小值。通过迭代更新weights,强调了在大量样本情况下梯度下降法的计算挑战与随机梯度下降法的优化策略。同时,讨论了梯度下降与梯度上升在不同损失函数下的应用。
摘要由CSDN通过智能技术生成
def gradAscent(dataMat,classLabels):
	dataMatrix = np.mat(dataMat)
	labelMat = np.mat(classLabels).transpose()
	m,n = np.shape(dataMatrix)
	#100,3
	alpha = 0.001
	maxCycles = 500
	#迭代停止条件这里是设置的迭代次数,也可以是梯度变化小于某个阈值
	
	weights = np.ones((n,1))
	for k in range(1):
		h = sigmoid(dataMatrix*weights)
		error = (labelMat - h)
		
		
		weights = weights + alpha*(dataMatrix.transpose()*error)
	return weights

weights = weights + alpha*(dataMatrix.transpose()*error) 这里是梯度上升法,文中说省去了简单的公式推导,我表示真不简单,以下做个解释:

梯度是一个矢量,有方向,有大小(向量的模,都是正数),一个弯曲的平面上的点想往下走有无数个方向可以选择(二维是没有方向的),而最陡峭的方向就是梯度的方向。

我们再寻求极小值时:

(可以用一元二次方程做类似想象,一元梯度等于导数,切线的斜率的绝对值为梯度大小)
当一个函数在随机点x求得的梯度为正数时,那么我们将x减小一点,函数值就会变小;
梯度为正时:x_new = x - alpha*梯度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值