knn演算法簡介及其簡單實現
基本想法:
已知樣本的屬性以及所屬類別。在**新的資料點類別時,通過計算該**點到每個樣本的距離,選出距離最近的k個點。然後通過這k個點的投票結果
決定被**的點屬於那種類別。
如上圖:綠色圓點代表我們需要**的點。其他點的屬性和類別均為已知。要判斷綠色點屬於那種類別,只需計算綠色點到各個點的距離。我們選出
k個距離最近的點。然後這k個點進行投票,得票的結果即使綠色點所屬的類別。
我們用偽**來表示:
(1)把樣本資料抽象為座標系的點。
(2)通過公式計算綠色點到各個點的距離
(3)k個最近的點進行投票表決。
這裡飲用python的機器學習庫sklearn,進行訓練
import numpy as np
from sklearn import neighbors
knn = neighbors.kneighborsclassifier() #取得knn分類器
data = np.array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]]) # data對應著打鬥次數和接吻次數
labels = np.array([1,1,1,2,2,2]) #labels則是對應romance和action
knn.fit(data,labels) #匯入資料進行訓練'''
knn.predict([18,90])
說明:首先,用labels陣列中的1和2代表romance和aciton,因為sklearn不接受字元陣列作為標誌,只能用1,2這樣的int型資料來表示,後面處理可以將1和2對映到romance和action上來。fit則是用data和labels進行訓練,data對應的是打鬥次數和接吻次數構成的向量,稱之為特徵向量。labels則是這個資料所代表的電影所屬的型別。呼叫predict 進行**,將未知電影的特徵向量代入,則能分析出該未知電影所屬的型別。此處計算結果為1,也就是該未知電影屬於romance,和直覺相符。
本文旨在簡介常用的資料探勘演算法的及其實現,以簡單的編碼實現演算法入門的講解。引用了一些常見的網路資料,內侵刪。
機器學習演算法(1) KNN
k nearest neighbor algorithm 右圖中,綠色圓要被決定賦予哪個類,是紅色三角形還是藍色四方形?如果k 3,由於紅色三角形所佔比例為2 3,綠色圓將被賦予紅色三角形那個類,如果k 5,由於藍色四方形比例為3 5,因此綠色圓被賦予藍色四方形類。k最近鄰 k nearest ne...
機器學習經典演算法1 knn
一 演算法簡要 物以類聚人以群分 是生活的現實寫照,knn就是讓那些距離近的人或物歸為一類。問題定義 基於給定的一些示例 事物的屬性features和該事物的分類class 對於某個特定或一系列事物的features,來對未定事物進行分類classifying。一般把給出了事物features和cl...
1 KNN 學習筆記
k near neighbor 優點 缺點 計算複雜度高,空間複雜度高 一般演算法流程 1 收集 準備和分析資料 2 訓練資料 不適用 knn 演算法 3 測試資料 4 使用演算法 準備 createdataset knn 分類演算法的流程 5 classify0 file2matrix 準備資料 ...