支持向量机分类器能够输出测试实例与决策边界之间的距离,你可以将其用作信心分数。但是这个分数不能直接转化成类别概率的估算。如果创建SVM时,在Scikit-Learn中设置probability=True,那么训练完成后,算法将使用逻辑回归对SVM分数进行校准(对训练数据额外进行5-折交叉验证的训练),从而得到概率值。 这会给SVM添加predict_proba()和predict_log_proba()两种方法。
例如以下代码所示:
import numpy as np
from sklearn import svm
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
clt = svm.SVC(probability = True)
clt.fit(X, y)
print clt.predict([[-0.8, -1]]) # 输出为分类结果
print clt.predict_proba([[-0.8, -1]]) # 输出为概率值