如何获取SGDClassifier(LinearSVM)的概率

时间:2019-03-19 22:35:13

标签: python machine-learning scikit-learn

我将SGDClassifierloss function = "hinge"一起使用。但是铰链损失不支持类别标签的概率估计。

我需要计算roc_curve的概率。不使用svm的SVC,如何在SGDClassifier中获得铰链丢失的可能性?

我见过有人提到使用CalibratedClassifierCV来获得概率,但我从未使用过它,也不知道它是如何工作的。

我非常感谢您的帮助。谢谢

1 个答案:

答案 0 :(得分:2)

从严格意义上讲,这是不可能的。

支持向量机分类器是非概率性的:它们使用超平面(2D中的线,3D中的平面,依此类推)将点分成两个类之一。点仅由它们位于超平面的哪一侧来定义。直接形成预测。

这与逻辑分类器和决策树之类的概率分类器形成对比,概率分类器为然后转换为预测的每个点生成概率。

CalibratedClassifierCV是一种元估计器;要使用它,您只需将基本估计量的实例传递给其构造函数,即可正常工作:

base_model = SGDClassifier()
model = CalibratedClassifierCV(base_model)

model.fit(X, y)
model.predict_proba(X)

它的作用是执行内部交叉验证以创建概率估计。请注意,这等同于sklearn.SVM.SVC所做的事情。