Scikit learn Scikit学习ElasticNetCV的多元回归失败

Scikit learn Scikit学习ElasticNetCV的多元回归失败,scikit-learn,Scikit Learn,根据和,ElasticNetCV接受多重输出回归。但是,当我尝试它时,它失败了。代码: from sklearn import linear_model import numpy as np import numpy.random as rnd nsubj = 10 nfeat_train = 5 nfeat_predict = 20 x = rnd.random((nsubj, nfeat_train)) y = rnd.random((nsubj, nfeat_predict)) lm =

根据和,
ElasticNetCV
接受多重输出回归。但是,当我尝试它时,它失败了。代码:

from sklearn import linear_model
import numpy as np
import numpy.random as rnd

nsubj = 10
nfeat_train = 5
nfeat_predict = 20
x = rnd.random((nsubj, nfeat_train))
y = rnd.random((nsubj, nfeat_predict))
lm = linear_model.LinearRegression()
lm.fit(x,y) # works
el = linear_model.ElasticNetCV()
el.fit(x,y) # fails
错误消息:

ValueError:  Buffer has wrong number of dimensions (expected 1, got 2) 

这是scikit学习版0.14.1的版本。这是文档和实现之间的不匹配吗

您可能想看看
sklearn.linear\u model.MultiTaskElasticNetCV
。但是请注意,此对象假定您的多个目标共享功能。因此,一个功能要么对所有任务都是活动的(每个任务都有可变的激活,可以很小),要么对所有任务都不是活动的。使用此对象之前,请确保这是您需要的功能。

这不是我需要的功能,但如果这是获得多元回归输出的唯一方法,我可能必须使用它。在我看来,
ElasticNetCV
无法支持多个输出是scikit learn中的一个缺陷。我知道他们一直在研究多元回归结果,但他们可能还没有得到ElasticNetCV,这不是一个bug。多目标是一个很好的特性,但它需要实现。由于同时处理多个独立目标不会产生数学优化增益,因此多目标在实现方面必须是有益的,并且显著地超过目标。这是可能的,所以pull请求是受欢迎的:)我想这更多是文档中的一个bug,而不是实现中的bug,因为文档清楚地表明它是受支持的:“y:narray,shape(n_示例)或(n_示例,n_目标)”。唯一的优点是删除Python级别的循环(这在其他回归器中确实节省了大量时间),即使在数学上多个输出和在回归器上的循环是等效的。