岭回归梯度下降中的错误(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新手,我必须要求您不要在第一个问题修复后编辑带有新问题的问题,因为这会使旧问题对其他未来的访问者无用。