基于支持向量机SVM多因子测量误差预测,支持向量机MATLAB代码编程实现

目录

支持向量机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,核函数

在这里插入图片描述
在这里插入图片描述

SVM应用实例

基于SVM的测量误差预测

tic
%% 加载数据
clc
clear
close all
format long

%读取数据
[num,ax,ay]= xlsread(‘修正数据.xlsx’);
num(:,4) = num(:,4)+100;
nn = randperm(length(num));
nn =1:16;
mm = 12;
%训练数据和预测数据
tic
input_train=num(nn(1:mm),1:3)‘;
input_test=num(nn(13:end),1:3)’;
output_train=num(nn(1:mm),4)‘;
output_test=num(nn(13:end),4)’;

%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train,0,1);
outputn_test=mapminmax(‘apply’,output_test,outputps);
inputn_test=mapminmax(‘apply’,input_test,inputps);
% rand(‘seed’,0)
% n =randperm(length(output));
n = 1:41;
m=35;
P_train=data(n(1:m);
T_train=output1(n(1:m);
P_test=data(n(m+1:end);
T_test=output1(n(m+1:end);

%% 利用训练集参数进行SVM网络训练
bestc=20;bestg=0.1; %确定的最佳参数
cmd = ['-s 3 -t 0 ‘,’-c ‘, num2str(bestc), ’ -g ‘, num2str(bestg) , ’ -p 0.1’];
model = svmtrain(T_train,P_train,cmd);
x = 300:1500;
xx = mapminmax(‘apply’,x,inputns)’;
[predict_train,acc]= svmpredict(ones(length(xx),1),xx,model);

% [predict_train,acc]= svmpredict(T_train,P_train,model);
% 反归一化

predict_train1=mapminmax(‘reverse’,predict_train’,outputns);
T_train=mapminmax(‘reverse’,T_train’,outputns);

figure
plot(x,predict_train1,‘r-*’)
hold on
plot(data1(n(1:m),1),T_train,‘b-o’)
xlabel(‘样本编号’)

legend(‘输出数据’,‘实际数据’)

效果图

基于支持向量机SVM多因子测量误差预测,支持向量机MATLAB代码编程实现_第1张图片

结果分析

从效果图看,SVM能把数据映射到高维空间,进行回归分析,貌似随机的误差也能找出一定规律进行预测,从而可以对测量误差进行矫正,实现准确测量

扩展

下面是部分SVM可以应用的方面,如果有需要欢迎扫描二维码联系
基于支持向量机SVM多因子测量误差预测,支持向量机MATLAB代码编程实现_第2张图片

你可能感兴趣的:(支持向量机,matlab,机器学习)