xgboost Forex_Proba: Как сделать сопоставление между вероятностями и метками - PullRequest
3 голосов
/ 29 марта 2019

Я пытаюсь предсказать решение мультиклассовой классификации с использованием алгоритма xgboost, однако я не знаю, как точно работает predict_proba. Фактически, predict_proba генерирует список вероятностей, но я не знаю, к какому классу относится каждая вероятность.

Вот простой пример:

Это мои данные поезда:

+------------+----------+-------+
| feature1   | feature2 | label |
+------------+----------+-------+
|    x       |    z     |   3   |
+------------+----------+-------+
|    y       |    u     |   0   |
+------------+----------+-------+
|    x       |    u     |   2   |
+------------+----------+-------+

Тогда, когда я пытаюсь предсказать вероятности для нового примера

model.predict_proba(['x','u'])

Это вернет что-то вроде этого:

[0.2, 0.3, 0.5]

Мой вопрос: какой класс имеет вероятность 0,5? это класс 2 или 3 или 0?

1 Ответ

3 голосов
/ 30 марта 2019

Похоже, что вы используете sklearn API xgboost.В этом случае модель имеет специальный атрибут model.classes_, который возвращает классы, которые были изучены моделью, и порядок классов в выходном массиве соответствует порядку вероятностей.

Вот пример с фиктивнымданные:

import numpy as np
import pandas as pd
import xgboost as xgb

# generate dummy data (10k examples, 10 numeric features, 4 classes of target)
np.random.seed(312)
train_X = np.random.random((10000,10))
train_y_mcc = np.random.randint(0, 4, train_X.shape[0]) #four classes:0,1,2,3

# model
xgb_model_mpg = xgb.XGBClassifier(max_depth= 3, n_estimators=100)
xgb_model_mpg.fit(train_X, train_y_mcc)

# classes
print(xgb_model_mpg.classes_)
>>> [0 1 2 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...