请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

SGD的随机结果

老师好,我在使用自己封装的SGD时,第一次训练,n_iters =2,视频中老师得到的R方值为0.78,我得到的结果为0.31,一开始我判断0.78和0.31可能和为1,有可能我的R2值代码出错,当我之后又进行几次训练,得到的是竟然全为负数。之后我将n_iters改为50后,得到的结果稳定在0.8左右,请问老师,这种情况是因为SGD在n_iters较小,训练次数较少表现出来的随机性吗?(检查了score的代码没有错误的情况下)
图片描述

正在回答

1回答

如果是你描述的情况,是的,是因为 n_iters 太小了。说明 sgd 中的迭代次数不够。


不过我刚刚用最新的环境测试了一下课程代码,对于 boston 数据,在 n_iters = 2 的时候,还是可以得到 0.78 的,所以我怀疑你的 sgd 的代码内部,对 n_iters 的使用和课程中的代码是不一致的,如果愿意可以检查一下自己的 sgd 代码哪里和课程代码不一致。


本小节课程代码可以参考这里:https://git.imooc.com/coding-169/coding-169/src/master/06-Gradient-Descent/07-SGD-in-scikit-learn


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕前端7243305 #1
    谢谢老师,确实是我的sgd内部代码有bug,已改正
    回复 有任何疑惑可以回复我~ 2021-09-14 08:01:16
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号