K最近鄰演算法(介紹)

2021-08-08 08:03:52 字數 1520 閱讀 2969

問題

用k最近鄰演算法建立分類系統

學習特徵抽取

學習回歸,即**數值

學習k最近鄰演算法的應用案例和侷限性

k最近鄰(k-nearest neighbours, knn)演算法

k最近鄰演算法是指在乙個座標系中(前提是把元素放入座標系【so,問題來了,怎麼把他們放入座標系?他們在座標系的位置怎麼確定?】),其中乙個點的特性或者數值可以由離他最近的幾個點求得,(原理是因為,他們所處的位置差不多,其會具有相當大的共性,他們之間更相似一些,這是一種猜測)

想法一:其實不用座標系也可以,可以使用集合,對於乙個未知的集合,可以與其他集合做交集,與其交集最大的幾個集合與他最相似

【其實還是尋找共性,判斷相似】

【so,問題是什麼叫相似?相似的程度如何判定?】

第乙個問題:特徵抽取

對於不同的系統,不同元素需要考慮的特點不同,可以根據自己的標準將各元素進行數位化,以乙個數值集合的形式表示乙個元素的特徵,

比如對於長方體,可以由長寬高三個標準度量,形成乙個(x,y,z)的集合

能否挑選合適的特徵事關knn演算法的成敗

第二個問題:相似程度的判定

現在已經使用一套標準將元素數值化,

乙個元素可能有n個數值來表示,那麼其就可以放入乙個n維座標系,

雖然當維數超過4時,我們很難想象這個座標系具體的樣子,可是這並不妨礙我們計算相似程度【愚蠢的自信。。。】

對於放入乙個2維座標系的兩個點來說,乙個為(x1,y1),另乙個為(x2,y2),兩點之間的距離為 sqrt( (x1-y1)^2 +(x2-y2)^2 )【這個叫畢達哥拉斯公式,其實就是求空間中兩點的距離公式】,對於三維座標系則是以此類推,

我們使用這個公式的結果來比較元素之間的相似程度。

【除了計算距離的方法,還有一種計算角度的方法,叫余弦相似度,要深入knn還得再看看】

既然我們可以對乙個未知元素根據其相鄰元素判斷他與其他元素的相似程度,那麼可不可以猜測這個元素的特點(這裡所說的特點不是將其定位在座標系中的特點,是額外的特點)呢?

可以,這就是回歸。其實也是根據其最近的k近鄰來推測他的特點。

在對元素打標籤時,需要使用合適的特徵來判斷元素。

機器學習簡介

knn演算法對於機器學習可能很初級,不過正是因為簡單,他反而可以讓你很快的了解一下,還能有些理解。

機器學習是想讓電腦更聰明,而knn演算法通過模仿人的解決方法,可以對一些行為做出**,可以對大量元素進行分類,可以根據**的結果進行推薦,看起來還是挺聰明的。

訓練 對於機器學習,首先要學會抽取元素的特徵,這需要大量的例子,提取的特徵可能很複雜,這一過程叫做訓練,讓他有些基礎資料,要不怎麼比對,也沒法分類了。

樸素貝葉斯分類器

在經過大量訓練後,再接觸到新的元素可以使用樸素貝葉斯分類器判斷其屬於某個類別的概率,這個和knn挺像的

至於樸素貝葉斯分類器怎麼實現的,還沒看。。。

K最近鄰演算法

參考 所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。cover和hart在1968年提出了最初的鄰近演算法。knn是一種分類 classification 演算法,它輸入基於例項的學習 instance based learning 屬於懶惰學習 lazy ...

K最近鄰演算法

一 原理 k最近鄰演算法 k nearest neighbor,knn 是最基本的分類演算法,其基本原理是 從最近的k個鄰居 樣本 中,選擇出現次數最多的類別作為判定類別。k最近鄰演算法可以理解為是乙個分類演算法,常用於標籤的 如性別。實現knn演算法核心的一般思路 相似度計算 計算未知樣本和每個訓...

最近鄰與K近鄰演算法思想

在關於徑向基神經網路的一篇博文機器學習之徑向基神經網路 rbf nn 中已經對最近鄰思想進行過描述,但是寫到了rbf中有些重點不夠突出,所以,這裡重新對最近鄰和k近鄰的基本思想進行介紹,簡潔扼要的加以總結。最近鄰的基本思想 儲存所有觀察到的有標籤的樣本,然後對新來的測試樣本,在標籤樣本集中找到與測試...