我正在尝试解释我的XGBoost模型。以下的两个数据集trainInput
和trainOutput
为例:
df.trainInputs input1 input2 input30 1 0 01 1 1 02 0 1 1..df.trainOutputs output0 1 1 02 1...
用户输入数据已经过独热编码处理,输出数据是一系列用户输出模式。我用这些数据训练我的XGBoost模型,然后基于另一个数据集的独热编码用户输入数据进行预测。我希望为每一列的元素获得一个百分比得分,但运行模型后,我只得到了二进制输出。我在构建模型时是否遗漏了什么?相关代码如下:
df.predictInputs input1 input2 input30 1 1 01 1 0 02 1 0 1..model = xgb.XGBClassifier()model.fit(trainInputs, trainOutput)y_pred = model.predict(predictOutput)
回答:
如果你想要得到结果的概率(每个元素的百分比得分),请使用predict_proba
代替predict
。