资 源 简 介
支持向量机的多类分类支持向量机的基本理论是从二类分类问题提出的。我想绝大部分网友仅着重于理解二类分类问题上了,我当初也是这样,认识事物都有一个过程。二类分类的基本原理固然重要,我在这里也不再赘述,很多文章和书籍都有提及。我觉得对于工具箱的使用而言,理解如何实现从二类分类到多类分类的过渡才是最核心的内容。下面我仅以1-a-r算法为例,解释如何由二类分类器构造多类分类器。二类支持向量机分类器的输出为[1,-1],当面对多类情况时,就需要把多类分类器分解成多个二类分类器。在第一种工具箱LS_SVMlab中,文件Classification_LS_SVMlab.m中实现了三类分类。训练与测试样本分别为n1、n2,它们是3 x 15的矩阵,即特征矢量是三维,训练与测试样本数目均是15;由于是三类分类,所以训练与测试目标x1、x2的每一分量可以是1、2或是3,分别对应三类,如下所示:n1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];x1 = [1*ones(1,5),2*ones(1,5),3*ones(1,5)]; n2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];x2 = [1*ones(1,5),2*ones(1,5),3*ones(1,5)]; 1-a-r算法定义:对于N类问题,构造N个两类分类器,第i个分类器用第i类训练样本作为正的训练样本,将其它类的训练样本作为负的训练样本,此时分类器的判决函数不取符号函数sign,最后的输出是N个两类分类器输出中最大的那一类。在文件Classification_LS_SVMlab.m的第42行:codefct = "code_MOC",就是设置由二类到多类编码参数。当第42行改写成codefct ="code_OneVsAll",再去掉第53行最后的引号,按F5运行该文件,命令窗口输出有:codebook = 1 -1 -1 -1 &n
文 件 列 表
LS_SVMlab
AFE.m
bay_errorbar.m
bay_initlssvm.m
bay_lssvm.m
bay_lssvmARD.m
bay_modoutClass.m
bay_optimize.m
bay_rr.m
buffer.mc
changelssvm.m
Classification_LS_SVMlab.m
code.asv
code.m
codedist_bay.m
codedist_hamming.m
codedist_loss.m
codelssvm.m
code_ECOC.m
code_MOC.m
code_OneVsAll.m
code_OneVsOne.m
Contents.m
crossvalidate.m
deltablssvm.m
democlass.m
demofun.m
demomodel.m
demo_fixedclass.m
demo_fixedsize.m
demo_yinyang.m
denoise_kpca.m
eign.m
gridsearch.m
initlssvm.m
kentropy.m
kernel_matrix.m
kpca.m
latentlssvm.m
leaveoneout.m
leaveoneout_lssvm.m
linesearch.m
linf.m
lin_kernel.m
LS-SVMlab Toolbox User's Guide.pdf
lssvm.dll
lssvm1024.dll
lssvm256.dll
lssvm64.dll
lssvmFILE.exe
lssvmFILE.m
lssvmFILE1024.exe
lssvmFILE256.exe
lssvmFILE64.exe
lssvmMATLAB.m
LS_SVM2.asv
medae.m
misclass.m
MLP_kernel.m
mse1.m
phitures.dll
plotlssvm.m
poly_kernel.m
postlssvm.m
predict.m
prelssvm.m
RBF_kernel.m
rcrossvalidate.m
ridgeregress.m
robustlssvm.m
roc.m
simclssvm.dll
simclssvm1024.dll
simclssvm256.dll
simclssvm64.dll
simFILE.exe
simFILE.m
simFILE1024.exe
simFILE256.exe
simFILE64.exe
simlssvm.m
sparselssvm.m
trainlssvm.m
trimmedmse.m
tunelssvm.m
validate.m
windowize.m
windowizeNARX.m