多変量回帰問題(2つの応答変数:緯度と経度)を考えてみましょう。現在、Support Vector Regression sklearn.svm.SVR
のようないくつかの機械学習モデルの実装では、多変量回帰をネイティブにサポートしていません。この目的のために、sklearn.multioutput.MultiOutputRegressor
を使用することができる。GridSearch over MultiOutputRegressor?
例:
from sklearn.multioutput import MultiOutputRegressor
svr_multi = MultiOutputRegressor(SVR(),n_jobs=-1)
#Fit the algorithm on the data
svr_multi.fit(X_train, y_train)
y_pred= svr_multi.predict(X_test)
私の目標は、sklearn.model_selection.GridSearchCV
によってチューニングするSVR
のパラメータです。理想的には、応答が単一の変数と複数でなかった場合は、次のように、私が操作を実行します:私の応答y_trainは2次元であるとして
from sklearn.svm import SVR
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
pipe_svr = (Pipeline([('scl', StandardScaler()),
('reg', SVR())]))
grid_param_svr = {
'reg__C': [0.01,0.1,1,10],
'reg__epsilon': [0.1,0.2,0.3],
'degree': [2,3,4]
}
gs_svr = (GridSearchCV(estimator=pipe_svr,
param_grid=grid_param_svr,
cv=10,
scoring = 'neg_mean_squared_error',
n_jobs = -1))
gs_svr = gs_svr.fit(X_train,y_train)
をしかし、私はSVRの上にMultiOutputRegressorを使用する必要があります。このGridSearch操作を有効にするために上記のコードを変更するにはどうすればよいですか?可能でない場合は、より良い選択肢がありますか?