对于我的回归问题,我使用了scikit的GridSearchCV -learn来获得最佳的Alpha值,并在我的估计器(Lasso,Ridge,ElasticNet)中使用这个Alpha值。我在训练数据集中的目标值不包含任何负值。但是一些预测值是负值(大约5-10%)。我正在使用下面的代码。我的训练数据包含一些空值,我将通过该功能替换它们。
return Lasso(alpha=best_parameters['alpha']).fit(X,y).predict(X_test)你知道为什么我会得到一些负值吗?X,y和X_test的形状为(20L,400L) (20L,) (10L,400L)
发布于 2013-11-18 00:07:02
套索只是正则化的线性回归,所以实际上对于每个训练的模型,都有一些预测值是负值。
考虑一个线性函数
f(x) = w'x + b其中w和x是向量,‘是转置运算符
无论w和b的值是什么,只要w不是零向量-对于哪个f(x)<0,总是有x的值。而且,用于计算w和b的训练集不包含任何负值也没有关系,因为线性模型总是(可能在一些非常大的值中)超过0值。
https://stackoverflow.com/questions/20032230
复制相似问题