对于我的回归问题,我正在使用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是向量,而'是转置运算符
不管
w
和b
的值是多少,只要w
不是零向量-总是存在x
的f(x)<0
值。而且,用于计算w和b的训练集不包含任何负值也没关系,因为线性模型将始终(可能是某些非常大的值)越过0值。关于machine-learning - 为什么我得到一些负值(预测变量)作为回归估计量(Lasso,Ridge,Elastic Net)的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20032230/