Maorongrong smile like sunshine

Matlab中的分类器

2015-02-03

随手记下的关于机器学习分类器的一些工具备忘。

MATLAB中的分类器

转自:Jason_Gu

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);
  • 朴素贝叶斯 (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;
  • 集成学习方法(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)

机器学习工具箱和代码

一些实用的机器学习工具箱和代码

matlab

  • initPmtk3 非常强大的一个工具包,几乎包含了机器学习所有常用算法。

  • dimension reduction 蔡登的论文代码,主要是降维的如PCA,LDA等,还有谱回归、特征选择、矩阵分解、聚类等。

  • feature extraction

    LBP feature:局部二值模型(Local Binary Pattern),一种非常强大的纹理特征

  • classifier

    random forest](https://code.google.com/p/randomforest-matlab/):随机森林分类器,准确率与速度都还不错

    libsvm:最强大的SVM工具箱

    sparse representation:稀疏表示分类器

python

  • numpy
  • scipy
    前两个主要是数值运算包,在机器学习,数据挖掘方面也是必须的。

  • scikit-learn python中最强大的机器学习包

Comments