news 2026/4/16 4:44:44

基于SVM的分类预测,SVM训练难点解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于SVM的分类预测,SVM训练难点解析

目录

支持向量机SVM的详细原理
SVM的定义
SVM理论
Libsvm工具箱详解
简介
参数说明
易错及常见问题
SVM应用实例,基于SVM的分类预测
代码
结果分析
展望

摘要

基于SVM的分类预测,SVM原理,SVM工具箱详解,SVM常见改进方法

支持向量机SVM的详细原理

SVM的定义

支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
(1)支持向量机(Support Vector Machine, SVM)是一种对数据进行二分类的广义线性分类器,其分类边界是对学习样本求解的最大间隔超平面。

(2)SVM使用铰链损失函数计算经验风险并在求解系统中加入了正则化项以优化结构风险,是一个具有稀疏性和稳健性的分类器 。

(3)SVM可以通过引入核函数进行非线性分类。

SVM理论

1,线性可分性


2,损失函数

3,核函数


Libsvm工具箱详解

简介

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。

主要参数说明

Options:可用的选项即表示的涵义如下
-s svm类型:SVM设置类型(默认0)
0 – C-SVC
1 --v-SVC
2 – 一类SVM
3 – e -SVR
4 – v-SVR
-t 核函数类型:核函数设置类型(默认2)
0 – 线性:u’v
1 – 多项式:(ru’v + coef0)^degree
2 – RBF函数:exp(-r|u-v|^2)
3 –sigmoid:tanh(r
u’v + coef0)
-d degree:核函数中的degree设置(针对多项式核函数)(默认3)
-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k)
-r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)
-c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
-n nu:设置v-SVC,一类SVM和v- SVR的参数(默认0.5)
-p p:设置e -SVR 中损失函数p的值(默认0.1)
-m cachesize:设置cache内存大小,以MB为单位(默认40)
-e eps:设置允许的终止判据(默认0.001)
-h shrinking:是否使用启发式,0或1(默认1)
-wi weight:设置第几类的参数C为weight*C(C-SVC中的C)(默认1)
-v n: n-fold交互检验模式,n为fold的个数,必须大于等于2
其中-g选项中的k是指输入数据中的属性数。option -v 随机地将数据剖分为n部分并计算交互检验准确度和均方根误差。以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。
具体对应解释如下:

svm类别

指定SVM的类型,下面是可能的取值:

CvSVM::C_SVC C类支持向量分类机。 n类分组 (n \geq 2),允许用异常值惩罚因子C进行不完全分类。
CvSVM::NU_SVC \nu类支持向量分类机。n类似然不完全分类的分类器。参数为 \nu 取代C(其值在区间【0,1】中,nu越大,决策边界越平滑)。
CvSVM::ONE_CLASS 单分类器,所有的训练数据提取自同一个类里,然后SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。
CvSVM::EPS_SVR \epsilon类支持向量回归机。训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。
CvSVM::NU_SVR \nu类支持向量回归机。 \nu 代替了 p。
kernel_type –
SVM的内核类型,下面是可能的取值:

CvSVM::LINEAR 线性内核。没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。K(x_i, x_j) = x_i^T x_j.
CvSVM::POLY 多项式内核: K(x_i, x_j) = (\gamma x_i^T x_j + coef0)^{degree}, \gamma > 0.
CvSVM::RBF 基于径向的函数,对于大多数情况都是一个较好的选择: K(x_i, x_j) = e^{-\gamma ||x_i - x_j||^2}, \gamma > 0.
CvSVM::SIGMOID Sigmoid函数内核:K(x_i, x_j) = \tanh(\gamma x_i^T x_j + coef0).
degree – 内核函数(POLY)的参数degree。
gamma – 内核函数(POLY/ RBF/ SIGMOID)的参数\gamma。
coef0 – 内核函数(POLY/ SIGMOID)的参数coef0。
Cvalue – SVM类型(C_SVC/ EPS_SVR/ NU_SVR)的参数C。
nu – SVM类型(NU_SVC/ ONE_CLASS/ NU_SVR)的参数 \nu。
p – SVM类型(EPS_SVR)的参数 \epsilon。
class_weights – C_SVC中的可选权重,赋给指定的类,乘以C以后变成 class_weights_i * C。所以这些权重影响不同类别的错误分类惩罚项。权重越大,某一类别的误分类数据的惩罚项就越大。
term_crit – SVM的迭代训练过程的中止条件,解决部分受约束二次最优问题。您可以指定的公差和/或最大迭代次数。

易错及调参注意事项

1,分类和回归容易搞错,分类-s参数为1,回归-s参数为1
2,bestc参数分类的时候调小,回归的时候调大。
3,安装libsvm参数的时候,工具箱自带的参数容易和matlab自带的冲突,要做好协调

SVM应用实例

数据

基于SVM的分类预测

部分代码

clc
clear
close all
format compact
%%
str1 = {‘真空系统不严密’,‘真空系统管道破裂’,‘供汽中断’,‘冷却管破裂’,‘凝结水泵故障’,‘低压加热管道破裂’,‘循环水泵故障’,‘循环水流量不足’,‘真空泵故障’,‘冷却管结垢’,‘冷却管堵塞’,‘凝水武器满水’};
%%
load maydata.mat
rand(‘seed’,0)
pan = 23;
y=1;
n = randperm(600);
m=500;
train_label1 = num(n(1:m),pan+y);
P_train= num(n(1:m),1:pan);
P_test= num(n(m+1:end),1:pan);
test_label1 = num(n(m+1:end),pan+y);

% 归一化
[p,ps]=mapminmax(P_train’,-1,1);
p_train=p’;
pt=mapminmax(‘apply’,P_test’,ps);
p_test=pt’;

%[outputn,outputps]=mapminmax(train_label’,1,length(str2));%训练数据的输出数据的归一化
[outputn,outputps]=mapminmax(train_label1’,-1,1);%训练数据的输出数据的归一化
train_label = outputn’;
p_testl =mapminmax(‘apply’,test_label1’,outputps);
test_label =p_testl’;

t=2;%t=0为线性核函数,1-多项式。2rbf核函数
%%
% train_label =[train_label ; test_label];
% p_train = [p_train ; p_test];

bestc=29;bestg=0.029;%1
cmd = [‘-s 3 -t ‘,num2str(t),’ -c ‘, num2str(bestc),’ -g ‘,num2str(bestg),’ -p 0.00001’];
model = svmtrain(train_label,p_train,cmd);
load maymodel.mat
[predict1,acc]= svmpredict(train_label,p_train,model);
predict1=mapminmax(‘reverse’,predict1’,outputps)';%
predict1 = round(predict1);
predict1(predict1<1)=1;
predict1(predict1>12)=12;
[train_label1,mx] = sort(train_label1);
predict1=predict1(mx);

figure;
hold on;
stem(predict1,‘o’);
plot(train_label1,‘r*’);
xlabel(‘训练集集样本’,‘FontSize’,12);
ylabel(‘类别标签’,‘FontSize’,12);
legend(‘实际输出’,‘期望输出’);
title(‘训练集分类结果’,‘FontSize’,12);
set(gca,‘YTick’,1:length(str1));
set(gca,‘YTickLabel’,str1)
grid on;
%% SVM网络预测

[predict_label,accuracy] = svmpredict(test_label,p_test,model);
predict_label=round(mapminmax(‘reverse’,predict_label’,outputps)');%
predict_label = round(predict_label);
predict_label(predict_label<1)=1;
predict_label(predict_label>12)=12;
[test_label1,mx1] = sort(test_label1);
predict_label=predict_label(mx1);

xunlian = sum(predict1train_label1)/length(train_label1)
ceshi = sum(predict_label
test_label1)/length(test_label1)

效果图




结果分析

从效果图看,SVM能能通过训练测试,基于SVM的分类预测,比较准确,具有实际应用参考意义,相对于传统的二分类SVM,libsvm工具箱,不仅能实现多分类,还可以实现回归分析,大大扩展了SVM的应用范围,在很多方面,特别小样本难训练的问题的应用方

扩展

下面是部分SVM可以应用的方面,如果有需要欢迎扫描二维码联系

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 7:08:48

第21届全国大学生智能汽车竞赛提问与回答:飞跃雷区组别

第二十一届全国大学生智能汽车竞赛比赛规则第21届全国大学生智能汽车竞赛提问于回答&#xff08;总入口&#xff09;第21届智能车竞赛飞跃雷区组比赛车模与比赛场地说明 01 提问与回答 2月份 序号提问回答备注1卓大&#xff0c;飞越雷区中用于驱动车辆识别的led的芯片必须是用…

作者头像 李华
网站建设 2026/4/16 1:10:43

深度学习实战119-AI大模型+Agent重塑医疗行业:智能诊疗助手项目完整代码实战

文章目录 引言:从一次误诊经历说起 项目背景与需求分析 医疗AI的现状与挑战 项目目标与功能规划 技术架构设计 环境准备与依赖安装 核心Agent架构实现 基础组件定义 医疗领域提示模板设计 Agent状态管理 医疗知识库构建与检索 知识库架构设计 知识库数据准备 Agent工具系统实现…

作者头像 李华
网站建设 2026/4/15 7:44:41

网络安全:一个让你后悔5年,和不入行后悔50年的选择

网络安全不仅作为当下应届生收入较高的专业之一&#xff0c;网络安全在转行领域也占据了热门位置&#xff0c;主要具备以下几点转行优势。 行业人才缺口大&#xff0c;到2027年我国网安人才缺口将达327万知识体系友好&#xff0c;计算机及英语水平相对薄弱的同学也可学习上手入…

作者头像 李华
网站建设 2026/4/12 22:44:38

2026年EOR名义雇主服务TOP3推荐榜单,为企业国际化赋能

EOR名义雇主服务在全球化过程中扮演着重要角色。它不仅帮助企业在新的市场中快速合规&#xff0c;也简化了人力资源管理。通过与专业的服务商合作&#xff0c;企业可以有效处理薪资、合同及员工管理。这些服务商通常提供一站式解决方案&#xff0c;确保企业在不同国家的运营符合…

作者头像 李华
网站建设 2026/4/15 17:08:51

非科班转网络安全,是逆袭捷径还是“野路子”深坑?欢迎讨论!

本文将从市场需求、技能体系、学习路径、职业发展等维度&#xff0c;全方位探讨非科班背景人员学习网络安全的可行性、挑战与机遇&#xff0c;旨在为徘徊在门槛外的初学者提供一份客观、理性的参考指南。 引言&#xff1a;热潮下的冷思考 “网络安全人才缺口数百万”、“年薪…

作者头像 李华
网站建设 2026/4/3 2:37:26

铁路轨道分割数据集labelme格式2234张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2234 标注数量(json文件个数)&#xff1a;2234 标注类别数&#xff1a;1 标注类别名称:["rail"] 每个类别标注的框数&#x…

作者头像 李华