摘要:K近鄰(k-NearestNeighbor,K-NN)算法是一個有監督的機器學習算法,也被稱爲K-NN算法,由Cover和Hart於1968年提出,能夠用於解決分類問題和迴歸問題。
k-近鄰算法,也叫KNN算法,是一個很是適合入門的算法算法
擁有以下特性:機器學習
● 思想極度簡單學習
● 應用數學知識少(近乎爲零)3d
● 對於各位開發者來講,不少不擅長數學,而KNN算法幾乎用不到數學專業知識rest
● 效果好orm
○ 雖然算法簡單,但效果出奇的好blog
○ 缺點也是存在的,後面會進行講解開發
● 能夠解釋機器學習算法使用過程當中的不少細節問題get
○咱們會利用KNN算法打通機器學習算法使用過程,研究機器學習算法使用過程當中的細節問題數學
● 更完整的刻畫機器學習應用的流程
○ 對比經典算法的不一樣之處
○ 利用pandas、numpy學習KNN算法
上圖中的數據點是分佈在一個特徵空間中的,一般咱們使用一個二維的空間演示
橫軸表示腫瘤大小,縱軸表示發現時間。
惡性腫瘤用藍色表示,良性腫瘤用紅色表示。
此時新來了一個病人
如上圖綠色的點,咱們怎麼判斷新來的病人(即綠色點)是良性腫瘤仍是惡性腫瘤呢?
k-近鄰算法的作法以下:
取一個值k=3(此處的k值後面介紹,如今你們能夠理解爲機器學習的使用者根據經驗取得了一個經驗的最優值)。
k近鄰判斷綠色點的依據就是在全部的點中找到距離綠色點最近的三個點,而後讓最近的點所屬的類別進行投票,咱們發現,最近的三個點都是藍色的,因此該病人對應的應該也是藍色,即惡性腫瘤。
本質:兩個樣本足夠類似,那麼他們兩個就具備更高几率屬於同一個類別。
但若是隻看一個,可能不許確,因此就須要看K個樣本,若是K個樣本中大多數屬於同一個類別,則被預測的樣本就極可能屬於對應的類別。這裏的類似性就依靠舉例來衡量。
這裏我再舉一個例子
● 上圖中和綠色的點距離最近的點包含兩個紅色和一個藍色,此處紅色點和藍色點的數量比爲2:1,則綠色點爲紅色的機率最大,最後判斷結果爲良性腫瘤。
● 經過上述發現,K近鄰算法善於解決監督學習中的分類問題