问题描述
我知道当我们超出 dtype 允许的范围时会发生溢出双标量。就我而言,我正在尝试这个
l=l+pow((y[i,]-(np.dot(w,x[i,]))),2)
并得到
<ipython-input-52-e03b293619db>:13: RuntimeWarning: overflow encountered in double_scalars
l=l+pow((y[i,2)
这是在 for 循环中,它应该返回一个数字。 l = 0
、y.shape = (200,)
、x.shape = (200,100)
。我试图用几个 i 值计算 for 循环外的这条线,它工作得很好。
我能做什么?谢谢。
def ridge_regression_GD(x,y,C):
x=np.insert(x,1,axis=1)
w=np.ones(len(x[0,:]))
t=0
eta=1
summatory=np.zeros(len(x[0,:]))
L_der=np.array([1])
losses=np.array([])
l=0
while np.any(L_der < -1) or np.any(L_der >= 1):
for i in range(0,len(y)):
summatory=summatory+((y[i,])))*x[i,]) #vector
l=l+pow((y[i,2) #number
losses=np.insert(losses,l+(C*np.dot(w,w)))
L_der=-2*summatory+2*C*w
w = w-eta*L_der
t+=1 #increment t
eta = 1/t # adjust step size
b=w[0]
w=w[1:]
return w,b,losses
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)