K均值和KNN演算法(學習筆記)

2021-09-19 14:24:34 字數 996 閱讀 5241

(上圖參考

學完吳恩達機器學習k均值演算法的課程,做一下總結。

首先k-means是乙個聚類演算法,屬於無監督學習。我們只知道資料,但沒有任何標籤,需要我們找出資料本身的data structure。

先確定乙個k值(分成k類,可能不是最優,後期可調整)後具體實現方法是:

1. 隨機初始化k個μ

建議直接選擇樣本點,即

2. 迴圈兩個步驟

(1)根據已經標記好的μ(1到k)更新每乙個樣本x(i)的類別c(i),且該樣本點的所屬均值為μc(i)。

(2)重新計算新的μ(1到k)。

3. 優化代價函式至收斂

至於怎麼選擇合適的k值,可以嘗試不同的k值,然後看誰的j比較小。(感覺很坑)

見下圖,隨機初始化很影響最後的分類,同乙個k值需要嘗試多次初始化。(同感覺很坑)

knn是乙個監督的演算法,但沒有學習的能力,原有的樣本是有標籤的,所以在判斷新的未知類別的樣本點時,計算離它最近的k樣本,這k個樣本中哪個類別多,新樣本屬於哪個類別。所以有時候不同的k值很影響新樣本的類別。

圖中已知標籤的為藍色和紅色的樣本,先需要判斷綠色點屬於藍色還是紅色,可以看到不同k值,結果不同。(感覺就是乙個充滿了坑的演算法)

但是有理論能夠證明knn的合理性,一種證明方法是用密度估計證明,以後有空再更。

KNN演算法學習筆記

概念 k近鄰 knn,k nearestneighbor 所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。核心思想 如果乙個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。最簡單的機器學習演算法之...

KNN演算法學習

knn演算法,我的理解是在有標籤的訓練樣本分佈中,有n個需要測試的樣本,通過尤拉距離 通過計算每個測試樣本得出離訓練最近的k個樣本,同過k個樣本中某一類標籤所佔的比例最高,則將該測試值 為該標籤。import numpy as np from math import sqrt from collec...

knn演算法學習

k近鄰近鄰演算法 多數表決規則等價於經驗風險最小化 損失函式最小化 一訓練資料為基礎,通過此類分類規則計算得到 一塊區域,有k個訓練資料,1,2,3個類別。1 2 3 當此區域判為1,損失函式等於2,3個數和 當此區域判為2,損失函式等於1,3個數和 當此區域判為3,損失函式為1,2個數和 選取損失...