机器学习-线性分类-支持向量机SVM-合页损失-SVM输出概率值-16
1. SVM概率化输出
标准的SVM进行预测 输出的结果是:
是无法输出0-1之间的 正样本 发生的概率值
sigmoid-fitting 方法:
将标准 SVM 的输出结果进行后处理,转换成后验概率
A,B 为待拟合的参数, f 为样本 x 的无阈值输出。
定义训练集为(fi,ti)
yi 为样本的所属类别,取值{-1,1}
利用之前的逻辑回归:
极小化训练集上的负对数似然函数
求出A和B,即可得到SVM的概率输出
import numpy as np
from sklearn.svm import SVC
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
cld = SVC(probability=True)
cld.fit(X, y)
print(cld.predict([[-0.8, -1]]))
print(cld.predict_proba([[-0.8, -1]]))
2. 合页损失
SVM某一条样本的损失
y(wx+b) >=1 分类正确 都没有损失
0<y(wx+b)<1 边界与超平面之间 有损失但是较小
y(wx+b)<0 彻底的分错了 loss=1+嵌入的深度
损失+正则项 得到目标函数: