Как установить оптимальный порог для классификатора XGBoost? Значение по умолчанию, используемое в алгоритме, составляет 0,5. Я хотел знать, есть ли какая-либо функция / встроенная функция, которую я могу использовать, чтобы изменить это.
При использовании python: вы ищете predict_proba() python API вместо обычного predict() API. С predict_proba() вы получаете вероятность, которая затем может быть сопоставлена с любым классом в зависимости от порогового значения.
predict_proba()
predict()
Поскольку вы упомянули spark mllib, вы можете использовать scala или java с xgboost4j. В таких случаях также существуют варианты; например, https://xgboost.readthedocs.io/en/latest/jvm/scaladocs/xgboost4j/ml/dmlc/xgboost4j/scala/Booster.html#predict(data:ml.dmlc.xgboost4j.scala.DMatrix,outPutMargin:Boolean,treeLimit:Int):Array[Array[Float]] вы ищете outPutMargin
https://xgboost.readthedocs.io/en/latest/jvm/scaladocs/xgboost4j/ml/dmlc/xgboost4j/scala/Booster.html#predict(data:ml.dmlc.xgboost4j.scala.DMatrix,outPutMargin:Boolean,treeLimit:Int):Array[Array[Float]]
outPutMargin
Для определения порога вы можете использовать RO C кривая или оценить свой бизнес-результат с помощью результата xgboost, например, если все случаи ниже 0,8 если убыток то вы можете установить порог 0,8 * 1012