matlab中的knn函數


knn

最鄰近分類

Class = knnclassify(test_data,train_data,train_label, kdistancerule)

k:選擇最鄰近的數量

distance:距離度量

              'euclidean'       歐幾里得距離,默認的
              'cityblock'        絕對差的和
              'cosine'           余弦   (作為向量處理)
              'correlation'     相關距離  樣本相關性(作為值序列處理)
              'Hamming'      海明距離   不同的比特百分比(僅適用於二進制數據)

rule:如何對樣本進行分類

              'nearest'  最近的K個的最多數
              'random'    隨機的最多數
              'consensus' 共識規則

% Classify the sample using the nearest neighbor classification
training = [mvnrnd([ 1  1],   1.2*eye(2), 100); ...
            mvnrnd([-1 -1], 1.5*eye(2), 100)];
group = [ones(100,1); repmat(2,100,1)];
gscatter(training(:,1),training(:,2),group,'rb','+x');
legend('Training group 1', 'Training group 2');
hold on;
sample = unifrnd(-5, 5, 100, 2);

c = knnclassify(sample, training, group);
gscatter(sample(:,1),sample(:,2),c,'gc'); hold on;
legend('Training group 1','Training group 2', ...
       'Data in group 1','Data in group 2');
hold off; 

  結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM