Xgboost: Regresi keluaran berganda

Dibuat pada 8 Mar 2017  ·  13Komentar  ·  Sumber: dmlc/xgboost

Bagaimana cara melakukan regresi keluaran berganda? Atau apakah itu tidak mungkin?

Asumsi saya saat ini adalah bahwa saya harus memodifikasi basis kode sedemikian rupa sehingga XGMatrix mendukung matriks sebagai label dan bahwa saya harus membuat fungsi tujuan khusus.

Tujuan akhir saya adalah melakukan regresi untuk menghasilkan dua variabel (satu poin) dan untuk mengoptimalkan kerugian euclidean. Apakah saya lebih baik membuat dua model terpisah (satu untuk koordinat x dan satu untuk koordinat y).

Atau ... apakah saya lebih baik menggunakan regressor hutan acak dalam sklearn atau algoritma alternatif lainnya?

feature-request

Komentar yang paling membantu

Ini akan menjadi fitur yang sangat bagus untuk dimiliki.

Semua 13 komentar

Regresi multivariat/multilabel saat ini tidak diterapkan #574 #680
Tianqi telah menambahkan beberapa struktur data placeholder yang relevan ke gbtree pelajar, tetapi tidak ada yang punya waktu, saya kira, untuk mengerjakan mesinnya.

Sayang sekali, karena banyak kompetisi dengan multi-output

Ini akan menjadi fitur yang sangat bagus untuk dimiliki.

Apakah kami memiliki pembaruan tentang ini?

Saya menambahkan fitur ini ke pelacak permintaan fitur: #3439. Mudah-mudahan, kita bisa sampai ke titik tertentu.

Saya setuju - fitur ini akan sangat berharga (persis seperti yang saya butuhkan saat ini...)

Saya juga setuju, meskipun ini cukup sepele untuk dilakukan di jaringan saraf, alangkah baiknya juga jika dapat melakukan ini di xgboost.

Ingin melihat fitur ini datang

ada alasan kenapa ditutup?

@veonua Lihat #3439.

Sementara itu ada alternatif, seperti ansambel model keluaran tunggal seperti:

# 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)

dari: https://Gist.github.com/MLWave/4a3f8b0fee43d45646cf118bda4d202a

Sementara itu ada alternatif, seperti ansambel model keluaran tunggal seperti:

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

Saya juga akan mempertimbangkan dan mengatakan bahwa memiliki fitur seperti itu akan sangat berguna. MultiOutputRegressor yang disebutkan di atas adalah pembungkus yang bagus untuk membangun beberapa model sekaligus dan berfungsi dengan baik untuk memprediksi variabel target yang independen satu sama lain. Namun, jika variabel target sangat berkorelasi, maka Anda benar-benar ingin membangun satu model yang memprediksi vektor.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat