機器學習matlab

2021-07-11 09:42:45 字數 2756 閱讀 8145

rain_data是訓練特徵資料, train_label是分類標籤。

predict_label是**的標籤。

matlab訓練資料, 得到語義標籤向量 scores(概率輸出)。

1.邏輯回歸(多項式multinomial logistic regression)

factor = mnrfit(train_data, train_label);

scores = mnrval(factor, test_data);

scores是語義向量(概率輸出)。對高維特徵,吃不消。

2.隨機森林分類器(random forest)

factor = treebagger(ntree, train_data, train_label);

[predict_label,scores] = predict(factor, test_data);

scores是語義向量(概率輸出)。實驗中ntree = 500。

效果好,但是有點慢。2500行資料,耗時400秒。500萬行大資料分析,會咋樣?準備好一篇**慢慢閱讀吧^_^

3.樸素貝葉斯分類(***** bayes)

factor = *****bayes.fit(train_data, train_label);

scores = posterior(factor, test_data);

[scores,predict_label] = posterior(factor, test_data);

predict_label = predict(factor, test_data);

accuracy = length(find(predict_label == test_label))/length(test_label)*100;

效果不佳。

4. 支援向量機svm分類

factor = svmtrain(train_data, train_label);

predict_label = svmclassify(factor, test_data);

不能有語義向量 scores(概率輸出)

支援向量機svm(libsvm)

factor = svmtrain(train_label, train_data, '-b 1');

[predicted_label, accuracy, scores] = svmpredict(test_label, test_data, factor, '-b 1');

5.k近鄰分類器 (knn)

predict_label = knnclassify(test_data, train_data,train_label, num_neighbors);

accuracy = length(find(predict_label == test_label))/length(test_label)*100;

不能有語義向量 scores(概率輸出)

idx = knnsearch(train_data, test_data);

idx = knnsearch(train_data, test_data, 'k', num_neighbors);

[idx, dist] = knnsearch(train_data, test_data, 'k', num_neighbors);

idx是近鄰樣本的下標集合,dist是距離集合。

自己編寫, 實現概率輸出 scores(概率輸出)

matlab 2012新版本:

factor = classificationknn.fit(train_data, train_label, 'numneighbors', num_neighbors);

predict_label = predict(factor, test_data);

[predict_label, scores] = predict(factor, test_data);

6.整合學習器(ensembles for boosting, bagging, or random subspace)

matlab 2012新版本:

factor = fitensemble(train_data, train_label, 'adaboostm2', 100, 'tree');

factor = fitensemble(train_data, train_label, 'adaboostm2', 100, 'tree', 'type', 'classification');

factor = fitensemble(train_data, train_label, 'subspace', 50, 'knn');

predict_label = predict(factor, test_data);

[predict_label, scores] = predict(factor, test_data);

效果比預期差了很多。不佳。

7. 判別分析分類器(discriminant analysis classifier)

factor = classificationdiscriminant.fit(train_data, train_label);

factor = classificationdiscriminant.fit(train_data, train_label, 'discrimtype', '判別型別:偽線性...');

predict_label = predict(factor, test_data);

[predict_label, scores] = predict(factor, test_data);

matlab機器學習庫

knn fitcknn meas,species,numneighbors 5 cvmdl crossval knn kloss kfoldloss cvmdl predict knn,ones 1,size meas,2 latent 特徵值 從大到小 score特徵向量 coeff,score,...

matlab自帶機器學習演算法

機器學習 matlab 自帶機器學習演算法彙總 部落格 引言 今天突然發現matlab 2015a的版本自帶了許多經典的機器學習方法,簡單好用,所以在此撰寫部落格用以簡要彙總 我主要參考了matlab自帶的幫助文件 matlab每個機器學習方法都有很多種方式實現,並可進行高階配置 比如訓練決策樹時設...

MATLAB 機器學習 安裝LIBSVM

本文僅僅介紹window下安裝步驟。3 新增路徑 主頁 設定路徑 新增資料夾及其子資料夾 解壓的資料夾裡的乙個資料夾windows即e program files libsvm 3.21 windows 儲存後關閉即可。tip 其實網上,大多數部落格都有介紹需要,mex進行c語言編譯,在我的安裝過程...