使用matlab Statistical Toolbox 中Multivariate Analysis类别下的函数来做分类实验

时间:2021-11-09 16:16:22

      matlab的功能很强大,各种toolbox中有丰富的函数,有了它们你不必亲自编写很多代码就可以展开相关实验。但是在浩瀚的toolbox函数库中,我们常常不知道已有现成的合适函数,反而自己苦苦coding了半天。本文正是为您介绍使用matlab statistical toolbox中自带的函数来做分类实验。

 

     具体的方法和函数描述我就不赘述了。大家可以参看statistical toolbox的Demo,在Demo的Multivariate Analysis一栏下有个classification的页面,介绍的很详细。下面我只是抽其要点做个记录。

 

     基于cross validation的分类实验流程(matlab中的例子是用cvpartition类来完成的,我不太喜欢用类,所以用了Bioinformatics Toolbox中的交叉验证样本集划分的函数crossvalind):

 

      % 载入数据(设有X和Y分别表示样本特征和标签)

      load filename;

      sample_N = length(Y);

     

 

      % 划分样本集

      K = 10;  % 设定交叉验证的fold数目

      indices = crossvalind('Kfold', sample_N, K);

      predictY = zeros(sample_N,1);

      for i= 1:K

        indxt_test = (indices == i);
        indxt_train = ~indxt_test;

        predictY(indxt_test ,1) = YourClassificationFunction(X(indxt_train ,:),Y(indxt_train ,:),X(indxt_test,:), ...);

      end

      C = confusionmat(Y,predictY);  % 计算confusion matrix,什么性能指标都好算了