机器学习-线性分类-支持向量机SVM-合页损失-SVM输出概率值-16

发布时间 2023-12-23 00:03:45作者: jack-chen666

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+嵌入的深度

损失+正则项 得到目标函数: