- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我使用来自 scikit learn (LinearSVC) 的线性 SVM 来解决二进制分类问题。我知道 LinearSVC 可以给我预测的标签和决策分数,但我想要概率估计(对标签的信心)。由于速度原因,我想继续使用 LinearSVC(与具有线性内核的 sklearn.svm.SVC 相比)使用逻辑函数将决策分数转换为概率是否合理?
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 是决策分数。
或者,我可以使用分类器的其他选项来有效地执行此操作吗?
谢谢。
最佳答案
scikit-learn 提供 CalibratedClassifierCV可以用来解决这个问题:它允许将概率输出添加到 LinearSVC 或任何其他实现决策函数方法的分类器:
svm = LinearSVC()
clf = CalibratedClassifierCV(svm)
clf.fit(X_train, y_train)
y_proba = clf.predict_proba(X_test)
用户指南有一个很好的section在那。默认情况下,CalibratedClassifierCV+LinearSVC 会为您提供 Platt scaling,但它也提供其他选项(等渗回归方法),并且不限于 SVM 分类器。
关于python - 将 LinearSVC 的决策函数转换为概率(Scikit learn python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478000/
我有两组模式,其中有一个补丁,两个模式之间的平均值显着不同(由 t 检验给出 [值为 t-vals])。此处,第一组的平均值为 1±0.1,第二组的平均值为 2±0.1,平均差异约为 1。 b> 我正
我正在抓取大约 200,000 个网站,寻找小型企业网站上发布的某些类型的媒体。我有一个腌制的 LinearSVC,我已经训练它来预测网页上找到的链接包含我正在寻找的类型的媒体的概率,并且它的性能相当
我不明白为什么这个神经轴管道不起作用。 我只想要缩放数据并应用 LinearSVC。 我做错了什么? 这就是我想要做的: import numpy as np from sklearn.ensembl
我使用 LinearSVC 作为决策树分类器的预处理步骤。我运行 LinearSVC 然后我做变换(X)。我注意到特征数量从大约 35 个减少到 9 个。我想知道实际选择了哪些特征。 我知道默认情况下
我正在使用 scikit-learn 的 LinearSVC 分类器进行文本挖掘。我将 y 值作为标签 0/1,将 X 值作为文本文档的 TfidfVectorizer。 我使用如下所示的管道 pi
我正在使用 scikit-learn 的 LinearSVC 分类器进行文本挖掘。我将 y 值作为标签 0/1,将 X 值作为文本文档的 TfidfVectorizer。 我使用如下所示的管道 pi
我对 SVM 理论不是很熟悉,我在 python 中使用这个 LinearSVC 类: http://scikit-learn.org/stable/modules/generated/sklearn
我有几个图像样本,我想预测这些图像是否包含文本/字符。 当我尝试在这一步运行我的代码时出现错误: model = cPickle.load(f) is_text = model.predict(ima
当我尝试使用我的数据(来自 this example )运行以下代码时 X_new = LinearSVC(C=0.01, penalty="l1", dual=False).fit_transfor
我正在使用 LinerSVC 技术对文本进行分类,但我想获得每个预测都附带的预测置信度。 这是我现在拥有的: train_set = self.read_training_files()
我有一个多标签数据(有些类有 2 个标签,有些类有 10 个标签),并且我的模型对于平衡值和无值过度拟合。为 class_weight 参数设置的最佳值是多少。 from sklearn.svm im
您如何训练 Scikit 的 LinearSVC在太大或不切实际而无法放入内存的数据集上?我试图用它来对文档进行分类,并且我有几千条标记的示例记录,但是当我尝试将所有这些文本加载到内存中并训练 Lin
我正在尝试使用LinearSVC 分类器 更新:添加了导入 import nltk from nltk.tokenize import word_tokenize from nltk.classify
我是 PySpark 的新手。我在 Windows 10 上安装了 Spark 2.3.0 。我想使用线性 SVM 分类器进行交叉验证训练,但用于具有 3 个类的数据集。所以我正在尝试应用 Spark
根据我的研究,我发现了三个相互矛盾的结果: SVC(kernel="linear") is better LinearSVC is better Doesn't matter 有人可以解释何时使用 L
此代码用于检测字符和绘制矩形,然后预测字符,但每次都会给我以下错误! for rect in rects: # Draw the rectangles cv2.rectangle(im, (rect[
我们如何从分类器对象中获取类别标签(例如,['business','lifestyle','sports','tech'])?分类器方法 predict 能够生成标签,所以我猜它应该存储在分类器对象内
SVM 分类器 ( SVC ) 的一种选择是 probability默认情况下是假的。文档没有说明它的作用。看着 libsvm源代码,它似乎做了某种交叉验证。 LinearSVC 不存在此选项也不是
我正在使用 LinearSVC 将文本数据分为 3 类。输入数据是每个单词的 tfidf 分数。我有兴趣看到单词对分类的“贡献”。第一个问题是我可以使用 coef_ 吗?该文件指出: coef_ :
当数据有偏移(不以零为中心)时,LinearSVC()和 SVC(kernel='linear')正在给出截然不同的结果。 (编辑:问题可能在于它不处理非规范化数据。) import matplotl
我是一名优秀的程序员,十分优秀!