1.k-近鄰演算法原理
k-近鄰(k-nearest neighbor,knn)分類演算法,是乙個理論很成熟的機器學習演算法之一。該算方法的工作原理:有乙個樣本的資料集,在機器學習中統稱為訓練樣本集。在訓練集中每個資料都有其標籤,我們通過標籤可以知道每個資料的所屬分類。當我們輸入乙個沒有標籤的新資料後,如果這個資料在特徵空間中的k個最相似(即特徵空間中最鄰近)的資料中的大多數屬於某乙個類別,則該樣本也屬於這個類別(即可以理解為離哪些k個樣本最近,則類別和這k個樣本一樣)。
2.例項講解k-近鄰演算法
如右圖所示,有兩類不同的樣本資料,分別用藍色的小正方形和紅色的小三角形表示,而圖正中間的那個綠色的圓所標示的資料則是待分類的資料。也就是說,現在, 我們不知道中間那個綠色的資料是從屬於哪一類(藍色小正方形or紅色小三角形),下面,我們就要解決這個問題:給這個綠色的圓分類。我們常說,物以類聚,人以群分,判別乙個人是乙個什麼樣品質特徵的人,常常可以從他/她身邊的朋友入手,所謂觀其友,而識其人。我們不是要判別上圖中那個綠色的圓是屬於哪一類資料麼,好說,從它的鄰居下手。但一次性看多少個鄰居呢?從上圖中,你還能看到:
1.如果k=3,綠色圓點的最近的3個鄰居是2個紅色小三角形和1個藍色小正方形,少數從屬於多數,基於統計的方法,判定綠色的這個待分類點屬於紅色的三角形一類。
2.如果k=5,綠色圓點的最近的5個鄰居是2個紅色三角形和3個藍色的正方形,還是少數從屬於多數,基於統計的方法,判定綠色的這個待分類點屬於藍色的正方形一類。
3.k-近鄰演算法的優缺點
優點:精度高,對異常資料不敏感(你的類別是由鄰居中的大多數決定的,乙個異常鄰居並不能影響太大),無資料輸入假定;
缺點:計算發雜度高(需要計算新的資料點與樣本集中每個資料的「距離」,以判斷是否是前k個鄰居),空間複雜度高(巨大的矩陣);樣本的不均衡可能造成結果錯誤:如果乙個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入乙個新樣本時,該樣本的k個鄰居中大容量類的樣本占多數。
k 近鄰演算法
此文章參考機器學習實戰一書,具體的理論知識可以參考該書。本文的初衷只是為了做乙個複習,將學過的知識加以整理,其中不免有一定的錯誤。2.k 近鄰演算法的原理介紹 k 近鄰演算法通過測量不同的特徵值之間的距離進行分類。它的工作原理如下 存在乙個樣本的資料集合,也成為訓練樣本集合。並且樣本集中的每個資料都...
K 近鄰演算法
k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入...
K 近鄰演算法
首先,我們將 k 近鄰演算法的基本理論 其次我們將使用python從文字檔案中匯入並解析資料 再次,討論當存在許多資料 的時,如何避免計算距離時可能碰到的一些常見錯誤 最後,利用實際的例子講解如何使用k 近鄰演算法改進約會 1.1 knn演算法 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且...