对于我的回归问题,我正在使用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)

最佳答案

Lasso只是正则化线性回归,因此实际上,对于每个训练后的模型,预测值都会为负值。

考虑一个月球功能

f(x) = w'x + b


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

不管wb的值是多少,只要w不是零向量-总是存在xf(x)<0值。而且,用于计算w和b的训练集不包含任何负值也没关系,因为线性模型将始终(可能是某些非常大的值)越过0值。

关于machine-learning - 为什么我得到一些负值(预测变量)作为回归估计量(Lasso,Ridge,Elastic Net)的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20032230/

10-12 21:15