Python的sklearn coef_输出中的目标是什么?

时间:2016-02-13 22:51:15

标签: python scikit-learn regression linear-regression regularized

当我在Python中使用sklearn进行岭回归时,coef_输出给了我一个2D数组。根据{{​​3}}它是(n_targets,n_features)。

我知道功能是我的系数。但是,我不确定目标是什么。这是什么?

1 个答案:

答案 0 :(得分:2)

目标是您要预测的值。脊回归实际上可以预测每个实例的更多值,而不仅仅是一个。 coef_包含用于预测每个目标的系数。它也就像你训练模型来分别预测每个目标一样。

让我们来看一个简单的例子。我会使用LinearRegression代替Ridge,因为Ridge会缩小系数的值并使其更难理解。

首先,我们创建一些随机数据:

X = np.random.uniform(size=100).reshape(50, 2)
y = np.dot(X, [[1, 2, 3], [3, 4, 5]])

X中的前三个实例是:

[[ 0.70335619  0.42612165]
 [ 0.2959883   0.10571314]
 [ 0.33868804  0.07351525]]

这些实例的目标y

[[ 1.98172114  3.11119897  4.24067681]
 [ 0.61312771  1.01482915  1.41653058]
 [ 0.55923378  0.97143708  1.38364037]]

请注意,y[0] = x[0]+3*x[1]y[1] = 2*x[0] + 4*x[1]y[2] = 3*x[0] + 5*x[1](我们如何使用矩阵乘法创建数据)。

如果我们现在适合线性回归模型

clf = linear_model.LinearRegression()
clf.fit(X, y) 

coef_是:

[[ 1.  3.]
 [ 2.  4.]
 [ 3.  5.]]

这与我们用于创建数据的等式完全匹配。