1、LDA(Linear discriminant analysis)
函数:[class, err]=classify(sample, training, group);
输入:sample=待测样本,% 矩阵 m*n m为样本数,n为特征数
training=训练样本,% 矩阵k*n k为样本数,n为特征数,
且 sample 和 training的列数要一样
group=已知的训练样本的分类
输出:class=分类
err=误差比例
2、QDA(Quadratic discriminant analysis)
函数:[class, err]=classify(sample, training, group, ’quadratic’);
输入:sample=待测样本,m*n m为样本数,n为特征数
training=训练样本,k*n k为样本数,n为特征数,
且 sample 和 training的列数要一样
group=已知的训练样本的分类,其行数与training的行数相等
输出:class=分类
err=误差比例
3、SVM(support vector machines)
函数:SVMStruct = svmtrain(train_data, train_label);
predict_label = svmclassify(SVMStruct, test_data)
输入:train_data=训练样本 % 矩阵,每行一个样本,每列一个特征
train_label=训练样本标签 % 列向量
test_data=测试样本
输出:SVMStruct=SVMStruct结构体中包含了训练好的分类器的所有参数,
包括支持向量,这些支持向量也用于对测试集进行分类
predict_label=测试样本标签
4、KNN(K-nearest neighbors)
函数:Class = knnclassify(test_data,train_data,train_label, k, distance, rule)
输入:k=选择最邻近的数量
Distance=距离度量
'euclidean' 欧几里得距离,默认的
'cityblock' 绝对差的和
'cosine' 余弦 (作为向量处理)
'correlation' 相关距离 样本相关性(作为值序列处理)
'Hamming' 海明距离 不同的比特百分比(仅适用于二进制数据)
Rule=如何对样本进行分类
'nearest' 最近的K个的最多数
'random' 随机的最多数
'consensus' 共识规则
输出:class=测试样本标签