KNN演算法和Kernel KNN演算法的區別

2021-09-28 21:49:50 字數 1924 閱讀 4961

knn演算法

knn(k-nearest neighbor,簡稱knn)演算法,是一種常用的監督學習方法,其工作機制為:給定測試樣本,基於某種距離度量找出訓練集中與其最靠近的k個訓練樣本。然後基於這k個「鄰居」的資訊來進行**,通常可選擇這k個樣本**現最多的類別標記作為測試結果;在回歸任務中,可使用「平均法」,即將這k個樣本的輸出類別標記的平均值作為**結果;還可基於距離遠近進行加權平均或加權投票,距離越近的樣本權重越大。

也就是去找你要分類的這個資料的鄰居,物以類聚人以群分,knn資料分類的道理也是如此。要想知道該資料屬於哪乙個類別,只需要去調查哪些資料是離該資料最近的資料,知道了這幾「鄰居」的類別,就可以**出該資料的類別。

給定乙個待分類樣本x,該演算法首先找出與x最接近或最相似的k個訓練樣本,然後根據這k個訓練樣本x的類別標籤確定樣本的類別,在度量待分類樣本與訓練集樣本的距離或相似性時,一般採用歐氏距離。這種方法的缺點就是在應對複雜樣本(比如樣本分佈不規則)時,分類準確率會大大降低。歐式距離ρ

ρρ的定義如下:

二維空間的歐氏距離,即兩點之間的歐氏距離,點(x1

,y1)

(x1,y1)

(x1,y1

)和點(x2

,y2)

(x2,y2)

(x2,y2

):ρ =√

(y2−

y1)+

(x2−

x1).

ρ = √(y2-y1)+(x2-x1).

ρ=√(y2

−y1)

+(x2

−x1)

.三維空間的歐氏距離:

ρ =√

(y2−

y1)+

(x2−

x1)+

(z2−

z1).

ρ = √(y2-y1)+(x2-x1)+(z2-z1).

ρ=√(y2

−y1)

+(x2

−x1)

+(z2

−z1)

.kernel knn演算法

kernel knn(核k近鄰)演算法,使用核距離代替歐氏距離作為待分類樣本與訓練集樣本的距離度量,實驗表明該演算法的分類效果優於傳統的k近鄰演算法。但該演算法的主要缺點是核函式的引數p難以確定,主要是依據經驗確定。

多項式核函式kp(

x,y)

kp(x,y)

kp(x,y

)的定義如下:

k (x

,xi)

=(x▪

xi+1

)d,d

=1,2

,...

,n

k(x,xi)=(x▪xi+1)^d, d=1,2,...,n

k(x,xi

)=(x

▪xi+

1)d,

d=1,

2,..

.,n最常用的多項式核函式kp(

x,y)

kp(x,y)

kp(x,y

)的定義如下:

k p(

x,y)

=(1+

y>)p

.kp(x,y) = (1+)^p.

kp(x,y

)=(1

+y>)p

.

核函式

在實際資料上經常遇到線性不可分的情況,而解決方法是將特徵對映到更高維的空間去,核函式雖然也是將特徵進行從低維到高維的轉化,但是是在低維上進行計算,而實際的效果表現在高維上,這就解決了維度災難的問題。

核函式的選擇要求滿足mercer定理,即核函式在樣本空間內的任意格拉姆矩陣(gram matrix)為半正定矩陣(semi-positive definite)。

Kmeans Kmeans 和KNN演算法比較

k means介紹 k means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示 如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。a 剛開始時是原始資...

Kmeans Kmeans 和KNN演算法比較

k means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示 如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。a 剛開始時是原始資料,雜亂無章,沒有l...

Kmeans Kmeans 和KNN演算法比較

摘要 k means介紹 k means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示 如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。k means...