首页 > 解决方案 > 对 DecisionTreeClassifier 预测的信心

问题描述

我试图了解分类算法如何工作以创建一种通用管道,所以我刚开始使用 LinearSVC 模型。一般来说,我在做:

model = LinearSVC(loss='squared_hinge', penalty='l2', dual=False, tol=1e-3)
model.fit(X_train, y_train)
pred_labels = model.predict(X_unlabeled)  
confidence_on_pred_labels = model.decision_function(X_unlabeled)

作为输出,我真的需要预测的标签及其置信度。但是当我尝试使用其他模型时,我找不到获得信心的方法。例如

model = DecisionTreeClassifier(random_state=0)
model.fit(X_train, y_train)
pred_labels = model.predict(X_unlabeled)  
confidence_on_pred_labels = model.predict_proba(X_unlabeled)

在这种情况下,对于每个预测标签,predict_proba 返回一个包含 [0,1] 作为值的元组(而不是 0 和 1 之间的置信度作为单个数字)。我的意思是,绝对所有的预测都有一个 0.0 或 1.0 的值,中间没有值。例如,如果我跑

set(model.predict_proba(X_unlabeled)[:,1]) I will get [0.0, 1.0] 

这是正常的吗?

我怎样才能得到这样的号码?或者还有哪些其他模型可以让我获得预测的置信度?最好的,

标签: pythonscikit-learnclassificationdecision-treetext-classification

解决方案


X 未标记与 X 未标记相同的数据吗?这可能是您的概率显示为 [0. 1.]。如果你给它的数据是你试图实际预测的,但不一样,你应该得到不同的概率。model.predict_proba 应该可以向您展示类概率。


推荐阅读