matlab二分类实验(使用libsvm工具包+SVMcgForClass函数)
matlab二分类实验(使用libsvm工具包+SVMcgForClass函数)
这几天在做数据挖掘实验,实验要求在 Matlab 环境下,利用 libsvm 工具包设计一个 SVM 两类分类器。在给定的数据集上进行 2-折交叉验证,另外可以使用SVMcgForClass函数寻找最优的c和g参数。
我在做实验的过程中参考了以下网址的解释,这里详细解释了libsvm中函数的使用,并且详细说明了每个参数的含义,另外还可以下载到libsvm以及SVMcgForClass函数的源代码。
http://www.matlabsky.com/thread-10966-1-1.html(很详细)
实验代码如下:
tic;
load('DATA.mat');
[N,M]=size(DATA);%N=14980,M=15
K=2;
%我觉得数据本身并不适合做归一化操作,归一化之后效果反而不好了
indices=crossvalind('Kfold',N,K);%将N个数据随机分成K份,并返回对应的索引
%%第一折
TEST1=(indices==1);%测试数据的索引
TRAIN1=~TEST1;%训练数据的索引
train1_data=DATA(TRAIN1,1:M-1);
train1_label=DATA(TRAIN1,M);
test1_data=DATA(TEST1,1:M-1);
test1_label=DATA(TEST1,M);<