资源简介
这是多分类的算法,采用一对一的方法,且SVM是利用libsvm工具箱的libtrain和libpredict函数,适合多分类的方法,也可已将这种方法用到别的算法中去
代码片段和文件信息
%% Load data
% * 数据预处理--分两类情况
data = load(‘Iris.txt‘);
%data = data.data;
%选择训练样本个数
num_train = 110;
%构造随机选择序列
%length函数:数组长度,即行数和列数中的较大值
%choose = randperm(length(data);
A=size(data1);
choose=randperm(A);%产生所有样本的随机序列A*1
train_data = data(choose(1:num_train):);%随机分配的训练集
%gscatter函数可以按分类或分组来画离散点,适用于画多个类别的离散样本分布图
%函数中,x和y是向量,是该点的x轴和y轴坐标,因为画在二维平面上,所以,如果是多维数据,只能从中选取两特征作为x,y坐标来代表点
%或者使用特定的降维投影函数来得到x,y。?group是类别标志或分组向量
%gscatter(train_data(:1)train_data(:2));
label_train = train_data(:end);
test_data = data(choose(num_train+1:end):);
label_test = test_data(:end);
%% svm的构建与训练
% 第二种SVM多分类的方法 一对一 总共有(n*n-1)/2个分类器 ,最终让测试样本遍历所有的分类器,投票决定
num = 0;
for i = 1:3-1 %3类
%n*n-1)/2个分类器 这个训练模型是三分类的模型
for j = i+1:3
num = num + 1;
%重新归类 在训练标签中确定分别表示的两类标签
index1 = find(label_train == i);
index2 = find(label_train == j);
%生成一个训练样本数量*1的一个向量
label_temp = zeros((length(index1)+length(index2))1);
%svm需要将分类标签设置为1与-1
label_temp(1:length(index1)) = 1;
label_temp(length(index1)
相关资源
- libsvm网格法查找最优参数函数 SVMcgF
- libsvm网格法查找最优解函数 SVMcgForC
- matlab型数据集heart_scale
- 编译好的libsvm
- 用于形成libsvm训练集的matlab程序
- libsvm-mat-2.83-1
- 多分类代码
- BP神经网络多分类
- 多分类SVM的Matlab实现
- libsvm-mat-2.91-1.rar
- 基于LSSVM的分类器,用于iris的三种分
- libsvm 编译后的工具包
- 使用matlab安装LIBSVM及读入数据集
- matlab使用libsvm进行分类代码.rar
- 支持向量机libsvm3.22工具箱编译完成
- matlab编程实现支持向量机的多分类
- svm多分类 matlab程序
- libsvm-3.23支持向量机类库,matlab版,可
- libsvm 程序集数据集
- CROlib.mat 1.0.2
- 很好的matlab libsvm应用案例( heart_sc
- BP神经网络进行多分类matlab代码 (c
- libsvm SVM分类器
- matlab的libsvm3.18工具箱
- libsvm-mat-2.89-3[FarutoUltimate3.0] SVM分类、
- matlab实现的SVM多分类
- libsvm-cg 支持向量机参数c和g的优化
- SVDD LIBSVM中的SVDD(Support vector data de
- gabor-pca 本程序是先用gabor小波变换对
- SVMyuce matlab支持向量机预测
评论
共有 条评论