Matlab自带常用的分类器,直接复制用就好了,很方面。

很方面的,懒得自己写了。

  1. clc  
  2. clear all   
  3.  load('wdtFeature');  
  4.      
  5. %    训练样本:train_data             % 矩阵,每行一个样本,每列一个特征  
  6.   训练样本标签:train_label       % 列向量  
  7.   测试样本:test_data  
  8.   测试样本标签:test_label  
  9.  train_data = traindata'  
  10.  train_label = trainlabel'  
  11.  test_data = testdata'  
  12.  test_label = testlabel'  
  13. %  K近邻分类器 KNN  
  14. % mdl = ClassificationKNN.fit(train_data,train_label,'NumNeighbors',1);  
  15. % predict_label   =       predict(mdl, test_data);  
  16. % accuracy         =       length(find(predict_label == test_label))/length(test_label)*100  
  17. %                  
  18. %  94%  
  19. 随机森林分类器(Random Forest  
  20. % nTree = 5  
  21. % B = TreeBagger(nTree,train_data,train_label);  
  22. % predict_label = predict(B,test_data);  
  23. %    
  24. % m=0;  
  25. % n=0;  
  26. for i=1:50  
  27. %     if predict_label{i,1}>0  
  28. %         m=m+1;  
  29. %     end  
  30. %     if predict_label{i+50,1}<0  
  31. %         n=n+1;  
  32. %     end  
  33. % end  
  34. %   
  35. % s=m+n  
  36. % r=s/100  
  37.     
  38. %  result 50%  
  39.     
  40. % **********************************************************************  
  41. 朴素贝叶斯 Na?ve Bayes  
  42. % nb = NaiveBayes.fit(train_data, train_label);  
  43. % predict_label   =       predict(nb, test_data);  
  44. % accuracy         =       length(find(predict_label == test_label))/length(test_label)*100;  
  45. %   
  46. %   
  47. % % 结果 81%  
  48. % % **********************************************************************  
  49. % % 集成学习方法(Ensembles for Boosting, Bagging, or Random Subspace  
  50. % ens = fitensemble(train_data,train_label,'AdaBoostM1' ,100,'tree','type','classification');  
  51. % predict_label   =       predict(ens, test_data);  
  52. %   
  53. % m=0;  
  54. % n=0;  
  55. for i=1:50  
  56. %     if predict_label(i,1)>0  
  57. %         m=m+1;  
  58. %     end  
  59. %     if predict_label(i+50,1)<0  
  60. %         n=n+1;  
  61. %     end  
  62. % end  
  63. %   
  64. % s=m+n  
  65. % r=s/100  
  66.     
  67. 结果 97%  
  68. % **********************************************************************  
  69. 鉴别分析分类器(discriminant analysis classifier  
  70. % obj = ClassificationDiscriminant.fit(train_data, train_label);  
  71. % predict_label   =       predict(obj, test_data);  
  72. %    
  73. % m=0;  
  74. % n=0;  
  75. for i=1:50  
  76. %     if predict_label(i,1)>0  
  77. %         m=m+1;  
  78. %     end  
  79. %     if predict_label(i+50,1)<0  
  80. %         n=n+1;  
  81. %     end  
  82. % end  
  83. %   
  84. % s=m+n  
  85. % r=s/100  
  86. %  result 86%  
  87. % **********************************************************************  
  88. 支持向量机(Support Vector Machine, SVM  
  89. SVMStruct = svmtrain(train_data, train_label);  
  90. predict_label  = svmclassify(SVMStruct, test_data)  
  91. m=0;  
  92. n=0;  
  93. for i=1:50  
  94.     if predict_label(i,1)>0  
  95.         m=m+1;  
  96.     end  
  97.     if predict_label(i+50,1)<0  
  98.         n=n+1;  
  99.     end  
  100. end  
  101.     
  102. s=m+n  
  103. r=s/100  
  104.     
  105. %  result 86% 

原文链接:http://blog.csdn.net/u014114990/article/details/51067059

posted @ 2017-03-12 18:41  刘岩--  阅读(7132)  评论(2编辑  收藏  举报