(Matlab函数详解)机器学习中的4种分类算法(LDA、QDA、SVM、KNN)
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=測試樣本標簽
總結
以上是生活随笔為你收集整理的(Matlab函数详解)机器学习中的4种分类算法(LDA、QDA、SVM、KNN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch框架学习十三——优化器
- 下一篇: leetcode BFS(python+