歐氏距離的矩陣實現 k近鄰分類器

2021-07-10 22:55:44 字數 615 閱讀 7545

在這個程式裡有130個訓練樣本也就是矩陣x,每個樣本實際上就是乙個點,它的第一行和第二行分別是它的橫縱座標;有2500個測試樣本也就是矩陣y,每個樣本實際上也是乙個點,第一行和第二行分別是它的橫縱座標。距離函式的主體**如下:

xx = sum(x.^2,1);%1*130

yy = sum(y.^2,1);

d = repmat(xx'

, [1 size(y,2)]) + repmat(yy, [size(x,2) 1]);

d = d - 2*x'

*y;

現在逐行來分析一下,矩陣xx輸出來是1*130,它所做的運算是對每乙個樣本的橫縱座標分別平方再相加,矩陣yy同理輸出1*2500.然後看一下repmat函式,這個函式簡單來說就是複製的意思,對於repmat(xx', [1 size(y,2)])就代表將向量xx轉置後橫向複製了2500次,得到了130*2500的矩陣,同理repmat(yy, [size(x,2) 1]就是矩陣yy縱向複製130次,也得到130*2500的矩陣。現在將他們加和實際上得到的是

然後再來看一下x的轉置與y的乘積,根據矩陣相乘的定義我們得到

現在我們再來看一下距離的定義,將上述公式帶入得到

這實際上就是歐氏距離的平方。

歐氏距離分類器

歐氏距離分類器是貝葉斯分類器的退化版本,在樣本滿足一定條件下成立。如下 function cls mahalanobisclassifier varargin x,m,sigma parseinputs varargin 分析輸入的變數 dis zeros size m,1 1 歐氏距離 cls z...

簡單歐氏距離分類器

機器學習問題描述 機器學習分類 任務根據麻瓜程式設計及習題整理 禁轉人工智慧 機器學習 實現人工智慧的一種方法 深度學習 機器學習中的一類演算法 特點 大資料,效果好,影象識別,語音識別 概括 通過學習歷史資料的特徵構建模型 未來資料 根據訓練樣本是否包含標籤分類 監督學習 訓練樣本包含對應的 標籤...

K近鄰分類演算法實現 in Python

k近鄰 knn 分類演算法 knn是non parametric分類器 不做分布形式的假設,直接從資料估計概率密度 是memory based learning.knn不適用於高維資料 curse of dimension machine learning的python庫很多,比如mlpy 更多pa...