function SVM_Test
clear all
% ------------------------------------------------------------%
% 构造两类训练数据集 以 y=ax^2+ b*x+c 为分界线 shift
% if a==0 then it is a line
a=0;
b=3;
c=0.5;
shift=0.5;
b1=0.5;
xx=-1:0.1:1;
n = length(xx);
x1=zeros(n,2);
x2=zeros(n,2);
x1(:,1) = xx';
x2(:,1)=xx';
x1(:,2)=a*x1(:,1).*x1(:,1)+b*x1(:,1)+c + shift+ abs(randn(n,1)) ;
x2(:,2)=a*x2(:,1).*x2(:,1)+b*x2(:,1)+c - shift- abs(randn(n,1)) ;
y1 = ones(n,1);
y2 = -ones(n,1);
figure;
plot(x1(:,1),x1(:,2),'bx',x2(:,1),x2(:,2),'k.');
hold on;
X = [x1;x2]; % 训练样本
Y = [y1;y2]; % 训练目标,n×1的矩阵,n为样本个数,值为+1或-1
% ------------------------------------------------------------%
ker=struct('type','linear');
%ker=struct('type','Radial basis kernel','value',1);
% -------------FFMVM 预抽取预支持向量 ------------------------%
XX=X;
YY=Y;
[X,Y]=SVM_FFMVM(ker, XX, YY);
fprintf('原输入向量规模 \n')
sizeX=size(XX)
fprintf('抽取预支持向量规模 \n')
sizeX=size(X)
plot(X(:,1),X(:,2),'*');
% ------------------------------------------------------------%
svm=SVM_DivideTwoClass(ker,X,Y)
%plot the decision function curve
for i=1:n
tx1=x1(i,1);
tx2=a*tx1*tx1+b*tx1+c;
min=1000;
for step=-shift:0.01:shift
tx=[tx1,tx2+step];
f=CalcValueBySVM(svm,tx);
if(abs(f)<min)
min=abs(f);
decisionCurve(i,:)=tx;
end
end
end
plot(decisionCurve(:,1),decisionCurve(:,2));
for i=1:2*n
f=CalcValueBySVM(svm,XX(i,:));
YYY(i)=sign(f);
end
YYY=YYY'
SVM.rar_svm 模式识别_机器学习拟合
版权申诉
108 浏览量
2022-09-22
21:40:04
上传
评论
收藏 3KB RAR 举报
周楷雯
- 粉丝: 78
- 资源: 1万+
最新资源
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 关于mybatis的一些相关资源
- 关于mybatist的一些相关资源
- uni-app实战社区交友类app开发&带视频教程
- mybatis动态sql的一些相关资源
- 隐马尔可夫模型在期货市场的应用_曾琦裕 (1).caj
- 极域解控和极域反控!!!
- 安卓android-serialport-api 串口demo源代码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0