热线电话:13121318867

登录
2020-04-23 阅读量: 799
jupyter notebook代码中截距项b0的x为什么取1?

#2.sgd算法

"""

迭代#1

令:b0=0,b1=0,b2=0,则p=1/(1+exp(-(0+0*1+0*3)))=0.5

因为w=w+alpha*(y-p)*p*(1-p)*x,

所以,

b0=0+0.3*(1-0.5)*0.5*(1-0.5)*1=0.0375

b1=0+0.3*(1-0.5)*0.5*(1-0.5)*1=0.0375

b2=0+0.3*(1-0.5)*0.5*(1-0.5)*3=0.01125

迭代#2

迭代#1

令:b0=0.0375,b1=0.0375,b2=0.01125,则p=1/(1+exp(-(0.0375+0.0375*2+0.01125*2)))=0.534

因为w=w+alpha*(y-p)*p*(1-p)*x,

所以,

b0=0.0375+0.3*(1-0.534)*0.534*(1-0.534)*1=0.0723

b1=0.0375+0.3*(1-0.534)*0.534*(1-0.534)*2=0.107

b2=0.01125+0.3*(1-0.534)*0.534*(1-0.534)*2=0.081

迭代#3......

注:一共6行数据,迭代后重新从第一行开始,则6次迭代为一个epoch(全部样本训练一次)

"""

print()

答:上述代码b0=0+0.3*(1-0.5)*0.5*(1-0.5)*1=0.0375中的截距项b0其实是没有x的,没有x的情况下给它一个1,或者给它一个2,其实都是一样的,在jupyter notebook中的算法默认是给值为1的,不影响后续的计算。

4.5214
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子