首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将LinearSVC的决策函数转换为概率(Scikit学习python )

将LinearSVC的决策函数转换为概率(Scikit学习python )
EN

Stack Overflow用户
提问于 2014-10-21 10:29:55
回答 2查看 41.8K关注 0票数 47

我使用来自scikit学习的线性支持向量机(LinearSVC)来解决二进制分类问题。我知道LinearSVC可以给我预测的标签和决策得分,但我想要概率估计(标签中的置信度)。由于速度的原因,我想继续使用LinearSVC (与具有线性内核的sklearn.svm.SVC相比)使用逻辑函数将决策分数转换为概率是否合理?

代码语言:javascript
运行
复制
import sklearn.svm as suppmach
# Fit model:
svmmodel=suppmach.LinearSVC(penalty='l1',C=1)
predicted_test= svmmodel.predict(x_test)
predicted_test_scores= svmmodel.decision_function(x_test) 

我想检查一下,简单地将概率估计为1/ (1 + exp(-x))是否有意义,其中x是决策得分。

或者,有没有其他选项wrt分类器,我可以用来有效地做到这一点?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-09-27 05:19:44

scikit learn提供了CalibratedClassifierCV,可以用来解决这个问题:它允许将概率输出添加到LinearSVC或任何其他实现decision_function方法的分类器:

代码语言:javascript
运行
复制
 svm = LinearSVC()
 clf = CalibratedClassifierCV(svm) 
 clf.fit(X_train, y_train)
 y_proba = clf.predict_proba(X_test)

用户指南上有一个很好的section。默认情况下,CalibratedClassifierCV+LinearSVC将为您提供普拉特缩放,但它也提供了其他选项(保序回归方法),而且它并不局限于支持向量机分类器。

票数 124
EN

Stack Overflow用户

发布于 2018-06-12 21:43:14

如果您真正需要的是置信度度量,而不是实际概率度量,则可以使用LinearSVC.decision_function()方法。请参阅documentation

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26478000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档