我正在使用scikit-learn做回归,我的问题如下 . 我需要对几个参数(向量)进行回归 . 这适用于一些回归方法,如 ensemble.ExtraTreesRegressor
和 ensemble.RandomForestRegressor
. 实际上,可以给出矢量矢量作为目标以适合模型( fit(X,y)
方法)用于前述两种回归方法 .
但是,当我尝试 ensemble.GradientBoostingRegressor
, ensemble.AdaBoostRegressor
和 linear_model.SGDRegressor
时,分类器无法适应模型,因为它期望将1维值作为目标( fit(X,y)
方法的y参数) . 这意味着,使用那些回归方法,我一次只能估计一个参数 . 这不适合我的问题,因为我需要花一些时间来估计大约20个参数 . 另一方面,我真的想测试这些方法 .
所以,我的问题是:有没有人知道是否有一个解决方案适合模型一次并估计 ensemble.GradientBoostingRegressor
, ensemble.AdaBoostRegressor
和 linear_model.SGDRegressor
的几个参数?
我希望我已经足够清楚......
2 回答
我解释你所拥有的是multiple multivariate regression的问题 .
并非每个scikit-learn中的回归方法都可以处理这类问题,您应该查阅每个问题的文档以找出它 . 特别是,SGDRegressor,GradientBoostingRegressor和AdaBoostRegressor目前都不支持:
fit(X, y)
指定X:类似数组,shape = [n_samples,n_features]和y:array-like,shape = [n_samples] .但是,您可以在scikit-learn中使用其他方法 . 例如,线性模型:
如前所述,只有一些模型支持多变量输出 . 如果要使用其他一个,可以使用新类来并行化多变量输出的回归量:MultiOutputRegressor .
你可以像这样使用它: