Ответ
В задачах регрессии предсказания бустинга (например, Gradient Boosting, XGBoost, LightGBM) — это вещественные числа (ℝ), так как результат представляет собой взвешенную сумму предсказаний базовых моделей (обычно деревьев решений).
В задачах классификации значения зависят от реализации и функции потерь:
- Бинарная классификация: Модель обычно предсказывает логарифм шансов (log-odds). Чтобы получить вероятность класса, это значение пропускается через сигмоидальную функцию.
- Мультиклассовая классификация: Для K классов модель предсказывает K значений (логитов), которые затем преобразуются в вероятности с помощью функции softmax.
Пример с XGBoost:
import xgboost as xgb
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=20)
model = xgb.XGBClassifier(objective='binary:logistic')
model.fit(X, y)
# Получить "сырые" предсказания (логарифмы шансов) до преобразования в вероятность
raw_predictions = model.predict(X, output_margin=True)
print(f"Диапазон сырых предсказаний: от {raw_predictions.min():.2f} до {raw_predictions.max():.2f}")
# Вывод: Диапазон сырых предсказаний: от -X.XX до X.XX (ℝ)
# Получить вероятности
probabilities = model.predict_proba(X)[:, 1]
print(f"Диапазон вероятностей: от {probabilities.min():.2f} до {probabilities.max():.2f}")
# Вывод: Диапазон вероятностей: от 0.00 до 1.00