【发布时间】: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