Python中文
首页
教程
问答
标签
搜索
登录
注册
采用梯度下降法的线性回归;成本函数值有问题
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在用梯度下降法对线性回归进行编码。通过使用for循环而不是张量</p> <p>我认为我的代码在逻辑上是正确的,当我绘制图表时,θ值和线性模型看起来很好。但成本函数的价值很高。你能帮我吗</p> <p><a href="https://i.stack.imgur.com/eHCk6.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/eHCk6.png" alt="enter image description here"/></a></p> <p>成本函数的值为1160934,这是异常的</p> <p><a href="https://i.stack.imgur.com/cdd9i.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/cdd9i.png" alt="enter image description here"/></a></p> <pre><code>def gradient_descent(alpha,x,y,ep=0.0001, max_repeat=10000000): m = x.shape[0] converged = False repeat = 0 theta0 = 1.0 theta3 = -1.0 # J=sum([(theta0 +theta3*x[i]- y[i])**2 for i in range(m)]) / 2*m ####### J=1 while not converged : grad0= sum([(theta0 +theta3*x[i]-y[i]) for i in range (m)]) / m grad1= sum([(theta0 + theta3*x[i]-y[i])*x[i] for i in range (m)])/ m temp0 = theta0 - alpha*grad0 temp1 = theta3 - alpha*grad1 theta0 = temp0 theta3 = temp1 msqe = (sum([(theta0 + theta3*x[i] - y[i]) **2 for i in range(m)]))* (1 / 2*m) print(theta0,theta3,msqe) if abs(J-msqe) <= ep: print ('Converged, iterations: {0}', repeat, '!!!') converged = True J = msqe repeat += 1 if repeat == max_repeat: converged = True print("max 까지 갔다") return theta0, theta3, J [theta0,theta3,J]=gradient_descent(0.001,X3,Y,ep=0.0000001,max_repeat=1000000) print("************\n theta0 : {0}\ntheta3 : {1}\nJ : {2}\n" .format(theta0,theta3,J)) </code></pre> <p><a href="http://archive.ics.uci.edu/ml/datasets/Real+estate+valuation+data+set" rel="nofollow noreferrer">This is the data set</a></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我认为数据集本身是相当广泛的,这就是为什么最佳拟合线显示了大量的成本函数。如果你扩展你的数据,你会看到它显著下降</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
2 回答
如何添加表示整数的擦边字符串?
3 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
7 回答
如何添加计数?
4 回答
如何添加计数器函数?
8 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
4 回答
如何添加计数器来跟踪while循环中的月份和年份?
5 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
5 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
9 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
1 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
1 回答
如何添加超时、python discord bot
4 回答
如何添加超过1dp的检查
9 回答
如何添加距离方法
7 回答
如何添加跟随游戏的敌人精灵
6 回答
如何添加路径以便python可以找到程序?
3 回答
如何添加身份验证/安全性以使用happybase访问HBase?
8 回答