机器人与人工智能爱好者论坛

 找回密码
 立即注册
查看: 12625|回复: 6
打印 上一主题 下一主题

计算梯度下降应用的问题?

[复制链接]

8

主题

21

帖子

149

积分

版主

Rank: 7Rank: 7Rank: 7

积分
149
楼主
发表于 2016-1-18 17:27:54 | 显示全部楼层
第14行代码改成  theta = theta - alpha * x.transpose() * error ,试试
回复 支持 反对

使用道具 举报

8

主题

21

帖子

149

积分

版主

Rank: 7Rank: 7Rank: 7

积分
149
沙发
发表于 2016-1-19 10:14:18 | 显示全部楼层
iamcodylee 发表于 2016-1-19 09:41
这样不对,这样一改我的cost函数都算不出来了,
然后抛出来的theta画的线也不对

这是基于梯度上升算法的logistic回归地址
http://www.robot-ai.org/forum.ph ... &extra=page%3D1

其中这段代码与gradDescent 这个方法很像,建议你看一下,或许能找到问题所在。
#dataMatIn 2维numpy数组,列代表特征,行代表训练样本 classLabels 类别标签
def gradAscent(dataMatIn,classLabels):
    #转换为Numpy矩阵数据类型
    dataMatrix = mat(dataMatIn)
    labelMat = mat(classLabels).transpose()
    m,n = shape(dataMatrix)
    alpha = 0.001 #向目标移动的步长
    maxCycles= 500 #迭代次数
    weights =ones((n,1))
    for k in range(maxCycles):
        h=sigmoid(dataMatrix*weights)
        error =(labelMat-h) #h为列向量,列向量的元素个数等于样本个数
        weights = weights + alpha * dataMatrix.transpose()*error
    return weights #返回训练好的回归系数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|陕ICP备15012670号-1    

GMT+8, 2024-5-19 19:01 , Processed in 0.055822 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表