matlab自带各种分类器的使用示例



目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机。现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。

  训练样本:train_data             % 矩阵,每行一个样本,每列一个特征
  训练样本标签:train_label
      % 列向量
  测试样本:test_data
  测试样本标签:test_label
 
K近邻分类器 (KNN)
mdl = ClassificationKNN.fit(train_data,train_label,’NumNeighbors’,1);
predict_label   =       predict(mdl,
test_data);
accuracy         =       length(find(predict_label
== test_label))/length(test_label)*100
               
 
随机森林分类器(Random
Forest)
B = TreeBagger(nTree,train_data,train_label);
predict_label = predict(B,test_data);
 
 
朴素贝叶斯 (Na?ve
Bayes)
nb = NaiveBayes.fit(train_data, train_label);
predict_label   =       predict(nb, test_data);
accuracy         =       length(find(predict_label
== test_label))/length(test_label)*100;
 
 
集成学习方法(Ensembles
for Boosting, Bagging, or Random Subspace)
ens = fitensemble(train_data,train_label,’AdaBoostM1’ ,100,’tree’,’type’,’classification’);
predict_label   =       predict(ens,
test_data);
 
 
鉴别分析分类器(discriminant
analysis classifier)
obj = ClassificationDiscriminant.fit(train_data, train_label);
predict_label   =       predict(obj,
test_data);
 
 
支持向量机(Support
Vector Machine, SVM)
SVMStruct = svmtrain(train_data, train_label);

predict_label  = svmclassify(SVMStruct, test_data)


我自己代码如下:


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



转自: https://blog.csdn.net/u014114990/article/details/51067059
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值