我将SGDClassifier
与loss function = "hinge"
一起使用。但是铰链损失不支持类别标签的概率估计。
我需要计算roc_curve
的概率。不使用svm的SVC,如何在SGDClassifier中获得铰链丢失的可能性?
我见过有人提到使用CalibratedClassifierCV来获得概率,但我从未使用过它,也不知道它是如何工作的。
我非常感谢您的帮助。谢谢
答案 0 :(得分:2)
从严格意义上讲,这是不可能的。
支持向量机分类器是非概率性的:它们使用超平面(2D中的线,3D中的平面,依此类推)将点分成两个类之一。点仅由它们位于超平面的哪一侧来定义。直接形成预测。
这与逻辑分类器和决策树之类的概率分类器形成对比,概率分类器为然后转换为预测的每个点生成概率。
CalibratedClassifierCV
是一种元估计器;要使用它,您只需将基本估计量的实例传递给其构造函数,即可正常工作:
base_model = SGDClassifier()
model = CalibratedClassifierCV(base_model)
model.fit(X, y)
model.predict_proba(X)
它的作用是执行内部交叉验证以创建概率估计。请注意,这等同于sklearn.SVM.SVC
所做的事情。