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的,不影响后续的计算。






评论(0)


暂无数据
推荐帖子
0条评论
1条评论