5
Xgboost에서 여러 개의 연속 출력 (다중 회귀)을 가진 모델을 학습 할 수 있습니까? 그런 모델을 훈련시키는 목적은 무엇입니까? 어떤 제안xgboost에서 muti 출력 회귀
Xgboost에서 여러 개의 연속 출력 (다중 회귀)을 가진 모델을 학습 할 수 있습니까? 그런 모델을 훈련시키는 목적은 무엇입니까? 어떤 제안xgboost에서 muti 출력 회귀
나의 제안에 미리
덕분에 xgb.XGBRegressor
의 래퍼로 sklearn.multioutput.MultiOutputRegressor을 사용하는 것입니다. MultiOutputRegressor
은 목표 당 하나의 퇴행자를 훈련시키고 회귀자는 fit
및 predict
을 구현하기 만하면 xgboost가 지원됩니다.
# get some noised linear data
X = np.random.random((1000, 10))
a = np.random.random((10, 3))
y = np.dot(X, a) + np.random.normal(0, 1e-3, (1000, 3))
# fitting
multioutputregressor = MultiOutputRegressor(xgb.XGBRegressor(objective='reg:linear')).fit(X, y)
# predicting
print np.mean((multioutputregressor.predict(X) - y)**2, axis=0) # 0.004, 0.003, 0.005
이 아마 (당신이 원래 sklearn
API를 사용한다면) 당신은 당신의 코드의 다른 부분을 변경할 필요가 없습니다 것처럼 xgboost 사용하여 다중 차원의 목표를 회귀 할 수있는 가장 쉬운 방법입니다.
그러나이 방법은 대상 간의 가능한 관계를 활용하지 않습니다. 그러나이를 달성하기 위해 customized objective 함수를 디자인 할 수 있습니다.
출력이 둘 이상의 값인 경우 RNN (GRU, LSTM 등)과 같은 시퀀스 모델이 필요합니다. [Keras] (https://keras.io/)는 그러한 모델의 프로토 타입을 빠르게 만들 수 있도록 도와줍니다. – uyaseen
나는 RNN을 알고있다. 나는 나무를 부양하는 것이 내 문제 공간에서 잘 수행된다는 것을 이미 알고 있기 때문에 그러한 것이 Xgboost에서도 가능했는지 궁금합니다. 나는 또한 내 출력 vecor 크기가 고정 될 수 있음에 유의해야합니다. – user1782011
출력 간의 관계를 알고 있다면이를 활용하여 목적 함수를 구현할 수 있어야합니다. [선형 관계가있는 임의의 포리 스트] (https://cran.r-project.org/web/packages/MultivariateRandomForest/MultivariateRandomForest.pdf)에 대해 수행되었습니다. 그리고 XGBoost 저자는 [그것이 가능하다고 생각합니다] (https://github.com/dmlc/xgboost/issues/680). –