岭回归梯度下降错误 (Python)

Error in Ridge Regression Gradient Descent (Python)

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

我的代码是这样的:

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

但我的 beta 总是出现错误:

不能将序列乘以 'float'

类型的非整数

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

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