Python 的 sklearn coef_ 输出中的目标是什么?
What is target in Python's sklearn coef_ output?
当我在 Python 中使用 sklearn 进行岭回归时,coef_ 输出为我提供了一个二维数组。根据 documentation 是 (n_targets, n_features)。
我明白特征是我的系数。但是,我不确定目标是什么。这是什么?
目标是您要预测的值。岭回归实际上可以为每个实例预测更多值,而不仅仅是一个。 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.]]
这与我们用来创建数据的方程完全匹配。
当我在 Python 中使用 sklearn 进行岭回归时,coef_ 输出为我提供了一个二维数组。根据 documentation 是 (n_targets, n_features)。
我明白特征是我的系数。但是,我不确定目标是什么。这是什么?
目标是您要预测的值。岭回归实际上可以为每个实例预测更多值,而不仅仅是一个。 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.]]
这与我们用来创建数据的方程完全匹配。