-
K-最近鄰(KNN)分類演算法是一種理論上成熟的方法,也是最簡單的機器學習演算法之一。 這種方法的思想是,如果特徵空間中大多數最相似(即最鄰)的 k 個樣本屬於某個類別,那麼該樣本也屬於該類別。
在 knn 演算法中,選擇的鄰居都是已正確分類的物件。 在這種方法中,僅使用最接近的樣本或多個樣本的類別來確定樣本在分類決策中所屬的類別。 雖然KNN方法在原理上也依賴於極限定理,但它只與範疇決策中的極少數相鄰樣本有關。
由於KNN方法主要依賴於周圍有限的相鄰樣本,而不是依靠判別域法來確定類別,因此KNN方法比其他方法更適合於對樣本集進行大量重疊或重疊的類域的劃分。
knn演算法不僅可以用於分類,還可以用於回歸。 通過查詢樣本的 k 個最近鄰並將這些鄰居的屬性的平均值分配給樣本,可以獲得樣本的屬性。 一種更有用的方法是為不同距離的鄰居對樣本的影響分配不同的權重,例如權重與距離成正比。
該演算法在分類中的主要缺點之一是,當樣本不平衡時,例如,乙個類的樣本量很大,而其他類的樣本量很小,這可能導致當輸入新樣本時,樣本的k個鄰居中大部分大容量類。 該演算法只計算“最近”的相鄰樣本,如果某個類的樣本數量很大,則該樣本要麼不靠近目標樣本,要麼樣本非常接近目標樣本。 無論哪種方式,數量都不會影響結果。
可以通過使用權重法(以及與樣品距離小的鄰居,權重大)來改進它。
這種方法的另乙個缺點是它是計算密集型的,因為對於要分類的每個文字,必須計算它到所有已知樣本的距離,以找到它的 k 個最近鄰。 目前常用的解決辦法是提前編輯已知的樣本點,提前去除對分類影響不大的樣本。 該演算法更適合於樣本量較大的類域的自動分類,而樣本量較小的類域則更容易使用該演算法進行錯誤分類。
-
我以前做過,現在我忘記了!
看起來像是在模式識別中!
它應該是最接近的類別。
-
KnearestNeighbor (KNN) 演算法簡介:對於未知樣本,我們可以根據最接近它的 k 個樣本的類別來判斷其類別。
舉個例子,對於乙個未知的樣本綠色圓圈,我們可以選擇最接近的3個樣本,其中包含2個紅色三角形和1個藍色方塊,那麼我們可以判斷綠色圓圈屬於紅色三角形的範疇。
我們也可以取最接近的 5 個樣本,其中包含 3 個藍色方塊和 2 個紅色三角形,然後我們可以確定綠色圓圈屬於藍色方塊的範疇。
文件
讓我們解釋一下 knn 演算法中的引數:
n_neighbors':選擇的參考物件數(鄰居數),預設值為5,也可以自行指定值,但非n個鄰居的值越大,分類效果越好,需要驗證最佳值。
weights':距離的權重引數,預設統一。
uniform':統一權重,每個類別的所有點的權重相同。 簡單地說,每一點的重要性都是一樣的。
distance':權重與距離的倒數成正比,距離較近的點更重要,對結果的影響更大。
algorithm':操作方法,預設自動。
auto':根據根除模型的FIT資料自動選擇最合適的計算方法。
ball_tree':樹形模型演算法balltree
kd_tree':樹模型演算法 kdtree
brute':蠻力演算法。
leaf_size':葉子的大小,預設為 30。 僅當演算法 = 球樹' or 'kd_tree',則需要設定此引數。
p':Minkoski距離,當p=1時,選擇曼哈頓距離; 當 p = 2 時,選擇歐幾里得距離。
n 作業:使用的計算機處理器數,預設為 1。 當 n=-1 時,所有處理器都用於計算。
4.應用案例演示
下面以SKLEARN庫自帶的資料集——手寫數字識別資料集為例,測試knn演算法。 在上一章中,我們簡要介紹了機器學習的一般步驟:載入資料集 - 訓練模型 - 結果 - 儲存模型。
在本章中,我們將遵循此步驟。
手動搜尋並編寫數字識別資料集。
5.模型的方法
每個模型都有一些獨特的屬性方法(模型的技能,它能做什麼),我們來看看knn演算法常用的屬性方法。
演算法的優缺點
優點:簡單,效果還不錯,公升降塊適用於多分類問題。
缺點:效率低(因為計算樣品與每個樣品點的距離然後排序),效率隨著樣品量的增加而降低。
-
k-最近鄰演算法是一種基於例項的機器學習演算法,主要用於分類和回歸問題。 這個想法是找到最接近新例項的 k 個已知例項,並使用它們的標籤(用於分類問題)或值(用於回歸問題)來發散。 使用 k 最近鄰演算法時,需要考慮三個基本要素:
1.距離測量方法。
距離度量是用於計算新例項和已知例項之間距離的方法。 常見的距離測量包括歐幾里得距離、曼哈頓距離、切比雪夫距離等。 在選擇測距方法時,需要根據具體問題的特點和資料的屬性進行選擇。
2.k 值選擇。
k 值是指選擇參與的最近已知例項數**。 通常,值太小會導致模型過擬合,而值過大會導致模型擬合不足。 因此,在選擇k值時,需要調整引數。
3.資料集選擇和預處理。
k-最近鄰演算法對資料集的質量和數量要求很高,因此需要選擇合適的資料集進行訓練和測試。 同時,在使用k-最近鄰演算法之前,需要進行一些預處理工作,如資料清洗、缺失值處理、特徵選擇和降維等。
除了上述三個基本要素外,k-最近鄰演算法還需要考慮其他因素,例如選擇分類或回歸問題,使用加權平均法等。 考慮到這些因素,我們可以推導出乙個更完整的k-最近鄰演算法過程,可以更好地應用於實際問題。
-
K 值選擇問題,李航博士的《統計學習方法》一書說:
列車損耗近似值
測試損耗:
在實際應用中,一般將k值作為相對較小的值,例如交叉驗證方法(簡單來說,訓練資料分為訓練集和驗證集兩組)來選擇最優k值。
例如,將資料分為 4 個部分,其中乙個用作驗證集。 然後對其進行了 4 次(組)測試,每次都使用不同的驗證集。 即得到4組模型的結果,取平均值作為最終結果。 也稱為 4 倍交叉驗證。
根據 knn 的說法,每當我們需要乙個點時,我們都需要計算訓練資料集中每個點到該點的距離,然後選擇離標尺源最近的 k 個點進行投票。 當資料集較大時,計算成本非常高,對於具有n個樣本和d個特徵的資料集,演算法複雜度為o(dn2
在構建 KD 樹時,有 2 個關鍵問題需要問:
1) 選擇向量的哪個維度進行分割槽?選擇隨機維度或按順序選擇,但更好的方法應該是將資料劃分為資料更分散的乙個維度(離散程度可以通過根數尺度的方差來衡量)。
2)如何劃分資料?乙個好的分割槽方法可以使構造的樹更加平衡,每次都可以選擇中位數進行劃分。
構造 函式
給定乙個二維空間資料集:t=,構造乙個平衡的 kd 樹。
優點: 缺點:
-
k-最近鄰演算法中的關鍵要素是:k值的選擇、鄰居距離的測量、分類決策的制定。
取值:k-最近鄰演算法優點明顯,使用簡單,可解釋性強,但也有其缺點。 例如,當類別分布出現偏差時,“多數投票”可能存在缺陷。 換句話說,k值的選擇非常重要,出現頻率更高的樣本將主導測試點的最佳結果。
2.鄰居距離的度量:
沒有量化,就沒有辦法測量距離和接近度。 為了計算“遠親和近鄰”,k-最近鄰演算法要求樣本的所有特徵都可以可比較地量化。 如果樣本資料的某些特徵是非數值的,請找到一種方法來量化它們。
例如,顏色,不同的顏色(如紅色、綠色、藍色)是非數字型別,它們之間似乎沒有距離。 但是,如果將顏色(這種非數字型別)轉換為灰度值(數字型別:0 255),則可以計算不同顏色之間的距離(或差異)。
3.分類決策:
從本質上講,分類器是從特徵向量到類別的對映函式。 k-最近鄰演算法的分類過程大致如下:(1)計算待測樣本與訓練集中每個樣本之間的歐幾里得距離; (2)從小到大對每個距離進行排序; (3)選取距離最短的前k個樣本,採用“少數服從多數”的投票規則進行分類任務。
對於回歸任務,可以使用 k 個鄰居的平均值作為 ** 值。
-
你好,親愛的! 最近鄰演算法 (KNN),也稱為 k 最近鄰演算法,是機器學習研究的乙個活躍領域。 最簡單的暴力破解演算法更適合小資料樣本。
k-最近鄰演算法使用的模型實際上對應於特徵空間的分割槽。 knn演算法不僅可以用於分類,還可以用於回歸。 knn演算法已廣泛應用於人工智慧機器學習、字元識別、文字分類、影象識別等領域2。
動態時間扭曲,簡稱DTW; 它是兩個時間序列之間相似性的度量,其特徵是序列的長度可以不同; 我們希望對您有所幫助!
-
1)簡單,易於理解和實施,無需估計引數。
2)零訓練時間。它不顯示訓練,這與其他監督演算法不同,後者使用訓練集訓練模型(即擬合函式),然後使用該模型對驗證集或測試集進行分類。 knn 只是儲存樣本並在收到測試資料時對其進行處理,因此 knn 訓練時間為零。
3)KNN可以處理分類問題,同時自然可以處理多分類問題,適合對罕見事件進行分類。
4)特別適用於多模態問題(具有多個類標籤的物件),KNN的效能優於SVM。
5)KNN還可以處理回歸問題,即**。
6)與樸素貝葉斯等演算法相比,對資料沒有假設,準確率高,對異常值不敏感。
1)計算量過大,特別是當特徵數量非常大時。每個要分類的文字都必須計算其與所有已知樣本的距離,以獲得其第 k 個最近鄰。
2)可理解性差,無法給出決策樹等規則。
3)是一種懶惰的學習方法,基本上不學習,導致速度比邏輯回歸等演算法慢。
4)當樣品不平衡時,稀有類別的精度低。當樣本不平衡時,例如一類樣本量大,其他 Waxland 物種樣本量小,當輸入新樣本時,可能會導致該樣本的 k 個鄰居中出現大容量類的大多數樣本。
5)對訓練資料的依賴性特別大,訓練資料的容錯性太差。如果訓練資料集中的一兩個資料是錯誤的,而它們恰好在需要分類的值旁邊,這將直接導致**資料的不準確。
當您需要乙個特別容易解釋的模型時。
例如,需要向使用者解釋原因的推薦演算法。
通過這個實驗,我了解了k最近鄰演算法及其思想,該演算法基於這樣一種思想:如果特徵空間中乙個樣本中大多數最相似的樣本都屬於某個類別,那麼該樣本也屬於該類別。
所謂的 k 最近鄰演算法意味著給定乙個訓練資料集,在訓練資料集中找到最接近新輸入例項的 k 個例項。
陝西K是榆林市的車牌。
陝西A習,陝西B銅川,陝西C寶雞,陝西D咸陽,陝西E渭南,陝西F漢中,陝西G安康,陝西H商洛,陝西J延安,陝西K榆林,陝西U省機關。 >>>More
[T0 K0 K1 K50 K4] :plc 到第乙個模組命令。
from k0 k5 d6 k2]:擴充套件模組從CR資料中讀出PLC引數命令。 >>>More