XGBoost预测输出不是二进制?

ora*_*rak 5 python classification machine-learning predict xgboost

我正在尝试运行一个非常简单的示例,其中XGBoost会获取一些数据并进行二进制分类。该文档说xgboost在使用“ binary:logistic”时输出概率

import numpy as np
import xgboost as xgb

data = np.random.rand(7,10)
label = np.random.randint(2,size=7)
#print data
#print label

dtrain = xgb.DMatrix(data, label=label)
param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'binary:logistic' }
plst = param.items()

bst = xgb.train(plst,dtrain,)

dtest= xgb.DMatrix(np.random.rand(4,10))
ypred = bst.predict(dtest)

print ypred
Run Code Online (Sandbox Code Playgroud)

输出为:

[ 0.31350434  0.31350434  0.31350434  0.31350434]
Run Code Online (Sandbox Code Playgroud)

那么这个输出是什么意思呢?这是否意味着我有31%的机会得到1?

如何将其转换为0,1?

这个问题似乎有关,但我无法从中得到任何有用的信息。

Bre*_*arn 0

是的,就是得到1的概率。要得到它的二进制值,只需检查它是否大于或小于0.5。