機器學習(二) 分類演算法之k 近鄰演算法

2021-07-09 04:10:54 字數 809 閱讀 7284

優點:精度高,對異常值不敏感,無資料輸入假定

缺點:計算複雜度高,空間複雜度高

使用資料範圍:數值型和標稱型

存在乙個樣本資料集合,也叫做訓練樣本集,並且樣本集中的每個資料都存在標籤,即我們知道樣本集中每個資料屬於什麼類別。輸入沒有標籤的新資料後,將新資料對每個特徵與樣本集中對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們選擇樣本資料集中前k個最相似的資料,這就是k-近鄰的k的出處。最後,選擇k個最相似資料中

出現次數最多的分類,作為新資料的分類。

對未知類別屬性的資料集中的每個點(即每個還不知道類別的樣本)依次執行以下操作:

1)計算已知類別資料集中的點與當前點之間的距離(怎麼計算距離在下文中講述)

2)按照距離遞增次序排序

3)選取與當前點距離最小的k個點

4)確定前k個點所在類別的出現頻率

5)返回前k個點出現頻率最高的類別作為當前點的**分類

最直觀的就是求各個屬性差值的平方和再開根號,但這樣是不對的,因為有的屬性的值很大,比如有多少rmb,有的屬性的值很小,比如花多少百分比的時間來看電視。如果都一視同仁地相減再平方,那像百分比這種值跟rmb這種值比起來可以直接忽略了。

對於這個問題,可以採用數值歸一化的方法來解決,如將取值範圍處理為0到1或者-1到1之間。公式為:

newvalue=(oldvalue-min)/(max-min)。

做完數值歸一化之後再執行上述的求差值的平方和再開根號就可以了。 當然如果各個屬性權重不一樣可以另外再加權調整。

通常用已知資料的90%來做訓練樣本,其餘10%做測試樣本來驗證分類器的正確性。

機器學習(二)k 近鄰分類演算法(kNN)

1 k 近鄰演算法概述 k 近鄰演算法採用 測量不同特徵值之間的距離的方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型。2 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每...

機器學習 分類演算法 K 近鄰演算法06

k最近鄰 k nearest neighbor,knn 分類演算法,是乙個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是 在特徵空間中,如果乙個樣本附近的k個最近 即特徵空間中最鄰近 樣本的大多數屬於某乙個類別,則該樣本也屬於這個類別。我們對應上面的流程來說 1.給定了紅色和藍...

機器學習之k 近鄰演算法(一)kNN分類演算法

採用python3.7,需要安裝numpy庫 演算法的邏輯如下 1.計算已知分類資料集中的點與輸入點之間的距離 2.根據距離遞增排序 3 選擇與輸入點距離最小的k個點 4 確認前k個點所在分類的出現頻率 5 返回前k個點出現頻率最高的分類作為輸入點的 分類 資料集 1.0,1.1 1.0,1.0 0...