k鄰近演算法

2021-08-13 23:40:58 字數 2360 閱讀 9839

今天學習了一點機器學習的知識,主要是機器學習最基本的演算法-k鄰近演算法。正好今天寫這篇blog可以複習鞏固,其中涉及到的code和一些內容來自《機器學習實戰》。

在此基礎上加了一點自己的注釋和理解。這本教程還是挺適合入門的,理論+**相結合。

k-近鄰演算法(knn)採用測量不同特徵值之間的距離方法進行分類。工作原理:首先存在乙個樣本資料集合(訓練樣本集),並且樣本集中每個資料都存在標籤(監督學習)。所謂的標籤就是樣本集每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵相比較,然後演算法提取樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中的前k個最相似的資料,這就是k近鄰演算法中k的出處,k通常不大於20的整數。最後選擇k個最相似資料中出現次數最多的分類,作為新資料的分類。這裡的距離是指d=sqrt。其中(x1,y1)表示某個樣本的兩個特徵值。下面以乙個具體的例子來說明:電影分類的例子,使用k-近鄰演算法分類愛情片和動作片。有人曾經統計過很多電影的打鬥鏡頭和接吻鏡頭,在這裡我們就選取打鬥鏡頭和接吻鏡頭的次數作為特徵來分類,下面顯示了六部電影的打鬥和接吻鏡頭次數。假設有一部未看過的電影,如何確定它是愛情片還是動作片?我們使用knn來確定。

電影名稱                     打鬥鏡頭                     接吻鏡頭                     電影型別 

california man 3 104 愛情片

he's not really into dudes 2 100 愛情片

beautiful woman 1 81 愛情片

kevin longblade 101 10 動作片

robo slayer 3000 99 5 動作片

amped 2 98 2 動作片

? 18 90 未知

首先我們需要知道這個位置電影存在多少個打鬥鏡頭和接吻鏡頭,資料如上表?資料,只知道打鬥鏡頭和接吻鏡頭的次數。即使不知道未知電影屬於哪種型別,我們也可以通過某種方法求出來。首先計算未知電影與樣本集中其他電影的距離。如下表:

電影名稱                        與未知電影的距離

california man 20.5

he's not really into dudes 18.7

beautiful woman 19.2

kevin longblade 115.3

robo slayer 3000 117.4

amped 2 118.9

在這裡我們可以將打鬥鏡頭次數和接吻鏡頭次數作為兩個特徵,即(打鬥鏡頭次數,接吻鏡頭次數),然後計算距離。現在我們知道了樣本集中所有電影與未知電影的距離,按照距離遞增排序,找到k個距離最近的電影。假定這裡k=3,則三個最靠近的電影依次是he』s not really into dudes 、 beautiful woman 以及california man 。k-近鄰演算法按照距離最近的三部電影的型別,決定未知電影的型別。而這三部全是愛情片,因此我們判定未知電影是愛情片。

1、收集資料:可以使用任何方法。

2、準備資料:距離計算所需的數值,最好是結構化的資料格式。

3、分析資料:可以使用任何方法。

4、訓練演算法:此步驟不適用於k-近鄰演算法。

5、測試演算法:計算錯誤率。

6、使用演算法:首先需要輸入樣本資料和結構化的輸出結果,然後執行k-近鄰演算法判定輸入資料分別屬於哪個分類,最後應用對計算出的分類執行後續的處理。

關於k-近鄰演算法如何使用python實現的例子不在此贅述,具體的例子會上傳到github,感興趣的可以去看看,這裡只要闡述思想。

K 鄰近演算法

k 鄰近演算法 1.演算法描述 k 鄰近演算法 k nearest neighbor,knn 分類演算法,是最簡單的機器學習演算法。工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每乙個資料與所屬分類對應的關係。輸入沒有標籤的新資料後,將新資料的每...

K鄰近演算法

k近鄰法 k nearest neighbor,k nn 是1967年由cover t和hart p提出的一種基本分類與回歸方法。它的工作原理是 存在乙個樣本資料集合,也稱作為訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每乙個資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新的...

K鄰近演算法 KNN

k nearest neighbor knn演算法 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。所選擇的鄰居都是已經正確分類的物件。如果k 3,則綠色圓形的類別與紅色三角形相同 如果k 5,則綠色圓形的類別與藍色正方形相同 the...