Xgboost: 多重出力回帰

作成日 2017年03月08日  ·  13コメント  ·  ソース: dmlc/xgboost

複数出力回帰を実行するにはどうすればよいですか? それとも単に不可能ですか?

私の現在の仮定は、XGMatrixがラベルとして行列をサポートするようにコードベースを変更する必要があり、カスタムの目的関数を作成する必要があるということです。

私の最終目標は、回帰を実行して2つの変数(ポイント)を出力し、ユークリッド損失を最適化することです。 2つの別々のモデル(1つはx座標用、もう1つはy座標用)を作成する方がよいでしょうか。

または... sklearnまたは他の代替アルゴリズム内でランダムフォレストリグレッサを使用する方が良いでしょうか?

feature-request

最も参考になるコメント

これは本当に素晴らしい機能です。

全てのコメント13件

多変量/マルチラベル回帰は現在実装されていません#574#680
Tianqiはいくつかの関連するプレースホルダーデータ構造をgbtree学習者に追加しましたが、機械を動かす時間は誰にもなかったと思います。

残念なことに、多くの競争はマルチアウトプットで行われているため

これは本当に素晴らしい機能です。

これに関する更新はありますか?

この機能を機能リクエストトラッカーに追加します:#3439。 うまくいけば、私たちはそれに到達することができます。

私は同意します-この機能は非常に価値があります(まさに今私が必要としているものです...)

私も同意します。これはニューラルネットで行うのは非常に簡単ですが、xgboostでもこれを実行できると便利です。

この機能が登場するのを見たい

閉鎖されている理由は何ですか?

@ veonua #3439を参照してください。

その間、次のような単一出力モデルのアンサンブルのような代替手段があります。

# Fit a model and predict the lens values from the original features
model = XGBRegressor(n_estimators=2000, max_depth=20, learning_rate=0.01)
model = multioutput.MultiOutputRegressor(model)
model.fit(X_train, X_lens_train)
preds = model.predict(X_test)

差出人//gist.github.com/MLWave/4a3f8b0fee43d45646cf118bda4d202a

その間、次のような単一出力モデルのアンサンブルのような代替手段があります。

https://scikit-learn.org/stable/modules/generated/sklearn.multioutput.MultiOutputRegressor.html

また、このような機能があると非常に便利だと思います。 上記のMultiOutputRegressorは、一度に複数のモデルを構築するための優れたラッパーであり、互いに独立しているターゲット変数を予測するのに適しています。 ただし、ターゲット変数の相関が高い場合は、ベクトルを予測する1つのモデルを作成する必要があります。

このページは役に立ちましたか?
0 / 5 - 0 評価