sklearn fornisce il metodo LASSO per la stima della regressione. Tuttavia, quando provo ad adattare LassoCV (X, y) con y una matrice, genera un errore. Vedi lo screenshot qui sotto e il link per la loro documentazione. La versione di sklearn che sto usando è 0.15.2.sklearn, LassoCV() e ElasticCV() non funzionano?
suo documento dice y può essere un ndarray:
y : array-like, shape (n_samples,) or (n_samples, n_targets)
Quando uso solo Lasso() per adattare lo stesso X e Y, funziona benissimo. Quindi mi chiedo se il LassoCV() è rotto o devo fare qualcos'altro?
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]:
sembra che coppia ElasticCV() ed elastica() ha la stessa situazione, ex() suggeriscono di utilizzare multitasking-ElasticCV() e quest'ultimo funziona bene per matrice 2d.
Sembra che la documentazione è sbagliato e si suppone di utilizzare il MultiTaskLassoCV se siete predire più bersagli. –
@DV, il multitask presuppone l'indipendenza tra ciascuna attività, che potrebbe essere diversa dal trattare l'intera Y nel suo insieme e applicare i test. Inoltre, il LassoCV() dovrebbe essere un involucro di Lasso() con convalida incrociata. Questo è il motivo per cui penso che la biblioteca sia rotta. –