You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

人体检测中,如何获取RBF核SVM的准确率、检测分数及核系数?

问题解决方案

1. 获取RBF核SVM的检测分数

在Python的sklearn.svm.SVC中,不用局限于predict()返回的0/1分类结果,可通过两种方式获取检测分数:

  • 调用decision_function()方法:返回样本到分类超平面的距离值,和线性SVM的检测分数逻辑一致,所有核类型(包括RBF)都适用。距离的正负对应分类类别,绝对值越大表示分类置信度越高。
  • 调用predict_proba()方法:初始化SVC时设置probability=True,训练后可返回样本属于各类别的概率值(范围0-1),但该方法需要额外做概率校准,会增加训练开销。

示例代码:

from sklearn.svm import SVC
import numpy as np

# 模拟HOG特征数据,实际使用替换为你的真实特征
X_train = np.random.rand(100, 128)
y_train = np.random.randint(0, 2, 100)
X_test = np.random.rand(20, 128)

# 初始化RBF核SVM,启用概率计算(可选)
svm_rbf = SVC(kernel='rbf', probability=True)
svm_rbf.fit(X_train, y_train)

# 获取距离形式的检测分数
decision_scores = svm_rbf.decision_function(X_test)
# 获取概率形式的检测分数
prob_scores = svm_rbf.predict_proba(X_test)

print("RBF核SVM的检测距离分数:", decision_scores)
print("RBF核SVM的分类概率:", prob_scores)

2. 查看RBF核SVM的核心参数(替代线性SVM的coef_)

RBF核SVM采用对偶形式训练,不存在线性SVM那样的coef_(原始特征空间的权重系数)——因为RBF会把特征映射到无限维空间,无法直接输出高维空间的权重。但可以查看以下核心参数来理解模型:

  • support_vectors_:训练中筛选出的支持向量,是模型决策的关键样本。
  • dual_coef_:对应支持向量的对偶系数,和核函数计算结果结合构成决策函数的核心部分。
  • intercept_:决策函数的截距项,对应超平面的偏移量。

RBF核的决策函数公式为:

$f(x) = \sum_{i=1}^{n_s} \alpha_i y_i K(x, x_i) + b$
其中$\alpha_i$是dual_coef_中的元素,$x_i$是support_vectors_,$b$是intercept_,$K$是RBF核函数

示例代码:

# 查看RBF核SVM的核心参数
print("支持向量数量:", len(svm_rbf.support_vectors_))
print("支持向量:", svm_rbf.support_vectors_)
print("对偶系数:", svm_rbf.dual_coef_)
print("截距项:", svm_rbf.intercept_)

内容的提问来源于stack exchange,提问作者Bhavin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 02:22:17