我正在使用带有sklearn和statsmodels的python来创建回归模型。 这是我第一次使用Ridge回归。但是,我不明白结果意味着什么。例如。
我打印时
print reg.intercept_
print reg.coef_
我得到的输出是
print reg.intercept_
[[ 0.00000000e+00]
[ -5.27579034e-03]
[ 3.35202990e-03]
[ -1.54862324e-02]
[ -3.74392708e-02]
print reg.coef_
[ 1.00000000e+00 4.11548523e-02 6.98464464e-01 3.88878487e-01
5.20562949e+01 ]
无论何时,我进行正常的线性回归,我只得到1次拦截,但是在脊模型中我得到5.有人可以详细解释为什么以及它是什么意思?
答案 0 :(得分:2)
我相信您有多个目标,如果您查看属性intercept_
下的Linear Regression文档,它会指定它独立于模型。如果您查看Ridge Regression,的相同文档,则会在“属性”部分中指定intercept_ : float | array, shape = (n_targets,)
。
您可以通过在我修改的以下代码中更改由变量n_targets
控制的目标数来验证这一点:
from sklearn.linear_model import Ridge
import numpy as np
n_targets=2
n_samples, n_features = 10, 5
np.random.seed(0)
y = np.random.randn(n_samples,n_targets)
X = np.random.randn(n_samples, n_features)
clf = Ridge(alpha=1.0)
clf.fit(X, y)
print( clf.intercept_)
如果设置n_targets=1
,则得到0.89586534,如果设置n_targets=2
,则得到[0.7101951 0.36420037]。
我在课程Data Analysis with Python ./