sklearn, LassoCV() and ElasticCV() broken?
sklearn提供LASSO方法进行回归估计。但是,当我尝试将LassoCV(X,y)与y拟合为矩阵时,会引发错误。请参见下面的屏幕截图,以及有关其文档的链接。我正在使用的sklearn版本是0.15.2。
http://scikit-learn.org/stable/modules/generation/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV
其文档说y可以是ndarray:
1 | y : array-like, shape (n_samples,) or (n_samples, n_targets) |
当我仅使用Lasso()来拟合相同的X和y时,效果很好。所以我想知道LassoCV()是否坏了或者我需要做其他事情吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | In [2]: import numpy as np im In [3]: import sklearn.linear_model In [4]: from sklearn import linear_model In [5]: X = np.random.random((10,100)) In [6]: y = np.random.random((50, 100)) In [7]: linear_model.Lasso().fit(X,y) Out[7]: Lasso(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=1000, normalize=False, positive=False, precompute='auto', tol=0.0001, warm_start=False) In [8]: linear_model.LassoCV().fit(X,y) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-8-9c8ad3459ac8> in <module>() ----> 1 linear_model.LassoCV().fit(X,y) /chimerahomes/wenhoujx/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/sklearn/linear_model/coordinate_descent.pyc in fit(self, X, y) 1006 if y.ndim > 1: 1007 raise ValueError("For multi-task outputs, use" -> 1008 "MultiTask%sCV" % (model_str)) 1009 else: 1010 if sparse.isspmatrix(X): ValueError: For multi-task outputs, use MultiTaskLassoCV In [9]: |
似乎ElasticCV()和Elastic()对具有相同的情况,前者建议使用multitask-ElasticCV(),而后者对于2d矩阵也可以使用。
与某些文档字符串中的内容相反,普通的套索估计器(例如您使用的估计器)不支持多个目标。
错误消息告诉您使用
(如果您想为独立目标贡献多目标支持,将非常欢迎在github上提出拉取请求。)