资源简介
用matlab编程实现支持向量机分类,核函数选取,超平面建立等
代码片段和文件信息
%主函数
clear all;
close all;
C = 10;
kertype = ‘linear‘;
%训练样本
n = 50;
randn(‘state‘6);
x1 = randn(2n); %2行N列矩阵
y1 = ones(1n); %1*N个1
x2 = 5+randn(2n); %2*N矩阵
y2 = -ones(1n); %1*N个-1
figure;
plot(x1(1:)x1(2:)‘bx‘x2(1:)x2(2:)‘k.‘);
axis([-3 8 -3 8]);
hold on;
X = [x1x2]; %训练样本d*n矩阵,n为样本个数,d为特征向量个数
Y = [y1y2]; %训练目标1*n矩阵,n为样本个数,值为+1或-1
svm = svmtrain(XYkertypeC);
plot(svm.Xsv(1:)svm.Xsv(2:)‘ro‘);
%测试
[x1x2] = meshgrid(-2:0.05:7-2:0.05:7); %x1和x2都是181*181的矩阵
[rowscols] = size(x1);
nt = rows*cols;
Xt = [reshape(x11nt);reshape(x21nt)];
Yt = ones(1nt);
result = svmtest(svm Xt Yt kertype);
Yd = reshape(resultYrowscols);
contour(x1x2Yd‘m‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function svm = svmtrain(XYkertypeC)
options = optimset; % Options是用来控制算法的选项参数的向量
options.LargeScale = ‘off‘;
options.Display = ‘off‘;
n = length(Y);
H = (Y‘*Y).*kernel(XXkertype);
f = -ones(n1); %f为1*n个-1f相当于Quadprog函数中的c
A = [];
b = [];
Aeq = Y; %相当于Quadprog函数中的A1b
- 上一篇:作业车间调度matlab源码及解析
- 下一篇:基于matlab实现gold码
相关资源
- matlab开发-使用svmrfe选择功能
- SVM MATLAB toolbox
- LSSVM程序代码
- Matlab实现遥感影像分类所需库svm、l
- 最小二乘支持向量机MATLAB程序,可分
- matlab版SVM代码,线性和非线性,拿来
- SVM算法仿真matlab代码
- 结构化svm代码-matlab版
- KPCA+SVM源代码
- windows和linux编译好的LIBSVM
- SVM_RFE循环递归筛选特征
- 基于PCA及SVM的人脸识别
- 基于MATLAB的图像SVM分类
- SVM分类程序
- 三分类_svm_matlab
- 故障分类svm代码
- 支持向量机非线性回归通用matlab程序
- SVM数据归一化matlab程序
- 基于遗传算法优化SVM的手写字体识别
- classfication_toolboxmatab版
- SVM中matlab版本的交叉验证和参数选择
- matlab支持向量机SVM完整工具包
- Libsvm数据格式互相转换
- SVM对图像进行分类分类
- 基于Matlab的SVM含数据
- 用MatLab实现SVM分类.
- libsvm-3.1
- 支持向量机用于肌电信号模式识别的
- 灰度共生矩阵提取结肠癌图像特征,
- 多分类SVM使用libsvm)
评论
共有 条评论