从scikit PassiveAggressiveClassifier()中提取置信度以进行单一预测

时间:2018-06-19 08:32:21

标签: python pandas machine-learning scikit-learn

我培训了IntVar一组165个类别。

现在我已经可以用它来预测某些输入,但有时它会失败,知道如何有信心"是每个预测的分类器以及其他考虑因素。

据我了解,我使用PassiveAggressiveClassifier

获取每个类别的距离

decision_function

这给了我这样的距离:

distances = np.array(ppl.decision_function(sample))

现在我有两个问题: 1是否可以将距离映射回类别,因为数组的长度(159)与我的类别数组不匹配。

第2,如何使用距离计算单个预测的置信度?

1 个答案:

答案 0 :(得分:2)

问题1

根据评论,确保所有课程都包含在培训集中。例如,您可以使用train_test_split函数并将目标传递到stratify参数来实现此目的。 执行此操作后,问题将消失,每个类将有一个分类器。因此,如果您将样本传递给decision_function方法,则每个类的超平面将有一个距离。

问题2

您可以通过重新缩放和标准化(即softmax)将距离转换为概率。这已在_predict_proba_lr方法内部实现。请参阅源代码here