0

对于我的回归问题,我使用 scikit-learn 的 GridSearchCV 来获得最佳 alpha 值,并在我的估计器(Lasso、Ridge、ElasticNet)中使用这个 alpha 值。我在训练数据集中的目标值不包含任何负值。但是一些预测值是负的(大约 5-10%)。我正在使用以下代码。我的训练数据包含一些 Null 值,我正在通过该功能替换它们。

return Lasso(alpha=best_parameters['alpha']).fit(X,y).predict(X_test)

知道为什么我会得到一些负值吗?X,y 和 X_test 的形状为 (20L, 400L) (20L,) (10L, 400L)

4

1 回答 1

3

Lasso 只是正则化的线性回归,因此实际上对于每个训练好的模型,都有一些值的预测器将为负数。

考虑一个线性函数

f(x) = w'x + b

其中 w 和 x 是向量,' 是转置运算符

无论 and 的值是什么wb只要w不是零向量 - 总是有xwhich的值f(x)<0。用于计算 w 和 b 的训练集不包含任何负值并不重要,因为线性模型将始终(可能在一些非常大的值中)越过 0 值。

于 2013-11-17T16:07:02.027 回答