sklearn学習sklearnパッケージを用いたMultiiOutputRegressor処理集積学習(XGBBoost GBDTなど)マルチ回帰の問題


同じfeatureで複数のターゲットを予測する必要がある場合があります.この場合、マルチ回帰にMultiOutputRegressorパッケージを使用する必要があります.
マルチ出力回帰サポートMultiOutputRegressorは、任意の回帰器に追加できます.このポリシーには、ターゲットごとに回帰器をフィットすることが含まれます.各ターゲットは1つの回帰器で正確に表すことができるので、対応する回帰器をチェックすることで、ターゲットに関する情報を取得することができる.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  リファレンスデータセットのインポート解析