岭回归梯度下降错误 (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)
。
我目前正在尝试使用梯度下降为岭回归创建代码。
我的代码是这样的:
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)
。