【问题标题】:Confidence on the predictions of DecisionTreeClassifier对 DecisionTreeClassifier 预测的信心
【发布时间】:2020-01-31 13:01:57
【问题描述】:

我试图了解分类算法如何工作以创建一种通用管道,所以我刚开始使用 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] 

这正常吗?

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

【问题讨论】:

    标签: python scikit-learn classification decision-tree text-classification


    【解决方案1】:

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

    【讨论】:

    • 嗨@Horbaje,感谢您的回答。我没有得到这个问题。 X_unlabeled 是一个 csr 矩阵,其数据例如是 [62.0465408 36.30498454 4.27042236 ... ]
    • 而且绝对所有的预测都有一个 o.0 或 1.0 的值。这是正常的吗?例如。如果我运行 set(model.predict_proba(X_unlabeled)[:,1]) 我会得到 [0.0, 1.0]
    • 是的,X_unlabeled 是目标集中的数据(没有标签,要分类)
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 2020-09-08
    • 2017-09-18
    • 2017-09-09
    • 1970-01-01
    • 2011-12-18
    • 2018-02-15
    • 1970-01-01
    相关资源
    最近更新 更多