【问题标题】:Error in Ridge Regression Gradient Descent (Python)岭回归梯度下降错误(Python)
【发布时间】:2021-02-20 22:45:28
【问题描述】:

我目前正在尝试使用梯度下降创建岭回归代码。

我的代码是这样的:

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 = 正则化超参数。

但我的测试版总是出错:

不能将序列乘以“浮点”类型的非整数

谁能帮我解决这个问题?我尝试了不同的方程式,但最终得到了相同的错误。

【问题讨论】:

  • 您的代码不可能有效,因为lambda 是 Python 关键字。
  • 谢谢!我试图将其更改为“l”,但错误是相同的:(
  • 我把上面的代码改成了'l'。

标签: python regression gradient-descent


【解决方案1】:

很可能您没有传入numpy 数组,而是一个列表。传入 numpy 数组或在函数中执行 beta = np.array(beta)。

【讨论】:

  • 谢谢!我试过了,它运行了。但是,它没有显示我认为的正确答案。它只返回 x 值,因此我的图表只显示一条水平直线。
  • @stetu 尝试调试,看看有什么问题。如果它仍然不起作用,请针对您的新问题提出一个新问题。由于您是 stackoverflow 的新手,我必须要求您在第一个问题解决后不要编辑带有新问题的问题,因为这会使旧问题对其他未来的访问者毫无用处。
猜你喜欢
  • 2021-04-30
  • 2017-09-24
  • 2019-08-29
  • 2021-06-23
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多