【发布时间】:2014-06-17 15:50:59
【问题描述】:
我只是一个初学者,我正在尝试在 scikit-learn 中实现多项式回归。没有正则化的通常回归工作正常
regr = linear_model.LinearRegression(copy_X=True)
X = np.array(time_list[0:24]).reshape(24,1)
for i in range(2,10):
X=np.append(X, X**i, 1)
Y = np.array(tempm_list[0:24]).reshape(24,1)
regr.fit(X, Y)
但是当我尝试以完全相同的方式实现岭回归时,我收到以下错误:
regularized_regr=linear_model.Ridge(alpha =1, copy_X=True)
regularized_regr.fit(X,Y)
File "/usr/local/lib/python2.7/site-packages/sklearn/linear_model/ridge.py", line 449, in fit
return super(Ridge, self).fit(X, y, sample_weight=sample_weight)
File "/usr/local/lib/python2.7/site-packages/sklearn/linear_model/ridge.py", line 338, in fit
solver=self.solver)
File "/usr/local/lib/python2.7/site-packages/sklearn/linear_model/ridge.py", line 294, in ridge_regression
coef = safe_sparse_dot(X.T, dual_coef, dense_output=True).T
UnboundLocalError: local variable 'dual_coef' referenced before assignment
谢谢
【问题讨论】:
-
This commit 表明这是 scikit 中的一个错误。不确定修复程序是否在已发布版本中。您可以尝试更新您的 scikit 安装。
-
正如@BrenBarn 所说,这可能是在 scikit-learn 的前沿版本中修复的错误。同时,你能试试更高的
alpha吗?我将在下面为您计算一个建议。
标签: python scikit-learn linear-regression