岭回归梯度下降中的错误(Python)
我目前正在尝试创建一个使用梯度下降的岭回归代码 我的代码是这样的:岭回归梯度下降中的错误(Python),python,regression,gradient-descent,Python,Regression,Gradient Descent,我目前正在尝试创建一个使用梯度下降的岭回归代码 我的代码是这样的: def gd_ridge(X, Y, beta, iter, learning_rate, lambda): m = X.shape[0] past_costs = [] past_betas = [beta] for i in range(iter): pred = np.dot(X, beta) err = pred - Y
def gd_ridge(X, Y, beta, iter, learning_rate, lambda):
m = X.shape[0]
past_costs = []
past_betas = [beta]
for i in range(iter):
pred = np.dot(X, beta)
err = pred - Y
cost = cost_reg(Yhat1, train_data_Y, lambda)
past_costs.append(cost)
beta = beta - learning_rate * 1/m * np.dot(f(X,beta)-Y,X) + lambda/m * beta
past_betas.append(beta)
l=正则化超参数
但我总是在我的测试版中出错:
无法将序列与“float”类型的非int相乘
有人能帮我吗?我尝试了不同的方程式,但最终还是出现了相同的错误。很可能您没有传入
numpy
数组,而是传入了一个列表。传入numpy数组或在函数中执行beta=np.array(beta)
。您的代码可能无效,因为lambda
是Python关键字。谢谢!我试图将其更改为“l”,但错误相同:(我将上面的代码改为“l”。谢谢!我试过了,它运行了。但是,我认为它没有显示正确的答案。它只返回x值,因此我的图表只显示一条直线。@stetu尝试调试,看看有什么问题。如果仍然不起作用,请针对新问题提出新问题。因为您是stackoverflow新手,我必须要求您不要在第一个问题修复后编辑带有新问题的问题,因为这会使旧问题对其他未来的访问者无用。