knn
最鄰近分類
Class = knnclassify(test_data,train_data,train_label, k, distance, rule)
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;
結果:

