资源简介
这是多分类的算法,采用一对一的方法,且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)
相关资源
- 利用WOA算法优化libsvm中SVDD算法的参数
- libsvm数据格式转换程序
- 基于LABVIEW和MATLAB混合编程障碍物识别
- libsvm - 支持多类别分类的svm工具箱m
- MATLAB的SVM安装包drtoolbox_libsvm-3.17
- 模式识别课程作业 matlab与libsvm环境
- libsvm工具包-Matlab
- libsvm3.14工具箱
- libsvm-3.1-[FarutoUltimate3.1
- matlab libsvm安装步骤
- svm多分类matlab程序
- 基于MATLAB的KNN算法实现多分类.rar
- Matlab实现遥感影像分类所需库svm、l
- 动物图像多分类识别MATLAB可运行
- windows和linux编译好的LIBSVM
- Libsvm数据格式互相转换
- libsvm-3.1
- 多分类问题中混淆矩阵(Confusion Mat
- 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 编译后的工具包
评论
共有 条评论