matlab中的分类器使用小结(SVM、KNN、RF、AdaBoost、Naive Bayes、DAC)

来源:互联网 发布:sql server 版本查看 编辑:程序博客网 时间:2024/05/18 00:59

1.前言

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

  • 训练样本:train_data            % 矩阵,每行一个样本,每列一个特征
  • 训练样本标签:train_label       % 列向量
  • 测试样本:test_data
  • 测试样本标签:test_label

2.分类器使用方法

2.1 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;

2.2 随机森林分类器—RandomF

nTree = 20;B = TreeBagger(nTree,train_data_pca,train_label');predict_label = predict(B,test_data_pca);predict_label = str2double(predict_label);accuracy = length(find(predict_label == test_label'))/length(test_label)*100;

2.3 朴素贝叶斯分类器—Naive 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;

2.4 集成方法分类器—AdaBoost

ens = fitensemble(train_data,train_label,'AdaBoostM1',100,'tree','type','classification');predict_label = predict(ens, test_data);accuracy = length(find(predict_label == test_label))/length(test_label)*100;

2.5 鉴别分析分类器—Discriminant Analysis Classifier

obj = ClassificationDiscriminant.fit(train_data, train_label);predict_label = predict(obj, test_data);

2.6 支持向量机分类器—SVM

option = statset('MaxIter',1000000);svm_struct = svmtrain(train_data_pca,train_label,'options',option);predict = svmclassify(svm_struct,test_data_pca);correct_num = sum((predict-test_label')==0);accuracy = correct_num / 3000;

原创粉丝点击