有些时候 我们需要通过相同的feature来预测多个目标,这个时候就需要使用MultiOutputRegressor包来进行多回归
多输出回归支持 MultiOutputRegressor 可以被添加到任何回归器中。这个策略包括对每个目标拟合一个回归器。因为每一个目标可以被一个回归器精确地表示,通过检查对应的回归器,可以获取关于目标的信息。 因为 MultiOutputRegressor 对于每一个目标可以训练出一个回归器,所以它无法利用目标之间的相关度信息。
以下是 multioutput regression(多输出回归)的示例:
from sklearn.datasets import make_regression # make_regression 是一个制造回归数据集的函数
from sklearn.multioutput import MultiOutputRegressor
from sklearn.ensemble import GradientBoostingRegressor # 选用你喜欢的集成学习回归器
X, y = make_regression(n_samples=20, n_targets=2, random_state=1)
MultiOutputRegressor(GradientBoostingRegressor(random_state=0)).fit(X, y).predict(X)
输出为:
array([[ 147.80687245, -105.58289635],
[ 55.91818382, 156.81792489],
[-215.22554254, -47.77173448],
[ 265.13966912, 98.54722282],
[ -3.70010961, 198.46661489],
[-251.73133083, -230.45052479],
[-201.34202992, -191.78198752],
[ 143.05135316, 136.11525807],
[ -92.82775669, 15.22841506],
[ -23.35300958, -18.53759614],
[ 200.78494682, 65.0972146 ],
[-149.83332244, -11.6712157 ],
[ 122.8573922 , 198.36911039],
[ -60.47749729, -92.04916976],
[ 279.55277906, 506.93529487],
[ 157.66308265, 222.62442361],
[-280.60036723, -68.95392183],
[ -37.0833775 , -95.97444789],
[ 266.66913207, 118.89832747],
[-123.3883845 , 92.68319567]])
Reference:
https://book.pythontips.com/en/latest/args_and_kwargs.html 传参数
https://sklearn.apachecn.org/docs/master/13.html?h=MultiOutputRegressor 文档
https://blog.csdn.net/Islotus/article/details/78671238
https://blog.csdn.net/Leytton/article/details/104088143 make_regression
https://zhuanlan.zhihu.com/p/108393576 参考数据集的导入解析