python - 对 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]
这是正常的吗?
我怎样才能得到这样的号码?或者还有哪些其他模型可以让我获得预测的置信度?最好的,
解决方案
X 未标记与 X 未标记相同的数据吗?这可能是您的概率显示为 [0. 1.]。如果你给它的数据是你试图实际预测的,但不一样,你应该得到不同的概率。model.predict_proba 应该可以向您展示类概率。
推荐阅读
- python - 由于区域 + 区域限制,无法运行 Dataflow 作业
- haskell - 从有状态的计算中分段创建结果,具有良好的人体工程学
- angular - Angular - 为什么服务会重置?
- r - 从列表中提取变量
- python-3.x - 使用 Python 解决 pi 的 e 次幂问题,反之亦然
- javascript - “RegExp”类型的参数不能分配给“字符串”类型的参数
- javascript - 如何在javascript中的数组内添加数组
- javascript - 使用 Javascript 访问 Jenkins API
- vert.x - Vertx:如何在处理正文请求之前验证身份验证?
- c# - unity - 正弦波振荡器产生金属噪音