根据文档和其他SO问题,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-learn 0.14.1版本。这是文档和实现之间的不匹配吗?
您可能想看看sklearn.linear_model.MultiTaskElasticNetCV
。但是要注意,这个对象假定您的多个目标共享特性。因此,一个特性要么对所有任务都是激活的(每个任务都有不同的激活,可能很小),要么对它们都不激活。在使用此对象之前,请确保这是您需要的功能。