use*_*396 3 python machine-learning scikit-learn
我正在SGDClassifier与loss function = "hinge". 但是铰链损失不支持类标签的概率估计。
我需要计算概率roc_curve。如何在不使用 svm 的 SVC 的情况下获得 SGDClassifier 中铰链损失的概率?
我见过有人提到使用CalibratedClassifierCV来获取概率,但我从未使用过它,也不知道它是如何工作的。
我真的很感谢你的帮助。谢谢
严格来说,这是不可能的。
支持向量机分类器是非概率的:它们使用超平面(2D 中的一条线,3D 中的平面等)将点分成两个类之一。点仅由它们在超平面的哪一侧定义,直接形成预测。
这与逻辑回归和决策树等概率分类器形成对比,后者为每个点生成概率,然后将其转换为预测。
CalibratedClassifierCV是一种元估计器;要使用它,您只需将基本估算器的实例传递给其构造函数,这样就可以了:
base_model = SGDClassifier()
model = CalibratedClassifierCV(base_model)
model.fit(X, y)
model.predict_proba(X)
Run Code Online (Sandbox Code Playgroud)
它的作用是执行内部交叉验证以创建概率估计。请注意,这等效于sklearn.SVM.SVC无论如何。