100天搞定機器學習 Day7 K NN

2021-09-25 16:13:35 字數 1453 閱讀 8955

機器學習100天|day1資料預處理

100天搞定機器學習|day2簡單線性回歸分析

100天搞定機器學習|day3多元線性回歸

100天搞定機器學習|day4-6 邏輯回歸

最近事情無比之多,換了工作、組隊參加了乙個比賽、和朋友搞了一些小專案,公號荒廢許久。堅持是多麼重要,又是多麼艱難,目前事情都告一段落,我們繼續100天搞定機器學習系列。想要繼續做這個是因為,一方面在具體應用中,發現很多之前遺漏的點,可以在這裡查漏補缺,鞏固知識點。另一方面,也是想大家一起打卡學習,一起**。那麼,繼續學習。

本演算法很簡單,day7,原文作者僅簡單介紹了knn演算法。

01k-nn演算法

k最近鄰(k-nearest neighbor,knn)是資料探勘分類技術中最簡單的方法之一,是機器學習中唯一乙個不需要訓練過程的演算法。k最近鄰,即每個樣本都可以用它最近的k個鄰居代表。核心思想是如果兩個樣本的特徵足夠相似,它們就有更高的概率屬於同乙個類別,並具有這個類別上樣本的特性。比較通俗的說法就是「近朱者赤近墨者黑」。

優點是簡單,易於理解,易於實現,無需估計引數,無需訓練;適合對稀有事件進行分類;特別適合於多分類問題, knn比svm的表現要好。

缺點是演算法複雜度高,每乙個待分類的樣本都要計算它到全體已知樣本的距離,效率較低;**結果不具有可解釋性,無法給出像決策樹那樣的規則;

02knn如何工作?

knn演算法的過程如下:1、選擇一種距離計算方式, 通過資料所有的特徵計算新資料與已知類別資料集中資料點的距離;2、按照距離遞增次序進行排序, 選取與當前距離最小的 k 個點;3、對於離散分類, 返回 k 個點出現頻率最多的類別作為**分類; 對於回歸, 返回 k 個點的加權值作為**值。

如上圖中,對灰色圓點進行分類,劃分其屬於綠、黃、紅何種型別。首先需要計算灰點和近鄰電之間的距離,確定其k近鄰點,使用周邊數量最多的最近鄰點類標籤確定物件類標籤,本例中,灰色圓點被劃分為黃色類別。

03幾種距離

距離越近,表示越相似。距離的選擇有很多,通常情況下,對於連續變數, 選取歐氏距離作為距離度量; 對於文字分類這種非連續變數, 選取漢明距離來作為度量. 通常如果運用一些特殊的演算法來作為計算度量, 可以顯著提高 k 近鄰演算法的分類精度,如運用大邊緣最近鄰法或者近鄰成分分析法。

歐氏距離

切比雪夫距離

馬氏距離

夾角余弦距離

切比雪夫距離

曼哈頓(manhattan)距離

關於這些距離細節,大家可以移步:

04k值k值是可以直接影響**結果的自定義常數。k值選擇太小,鄰居就會過少,易受雜訊資料干擾,導致分類精度較低。k值選擇太大,易蔣不相似資料報含進來,造成雜訊增加,分類效果不佳。比較常用的是使用交叉驗證誤差統計選擇法,比較不同k值時的交叉驗證平均誤差率, 選擇誤差率最小的那個k值. 例如選擇k=1, 2, 3, ... , 對每個k = i 做100次交叉驗證, 計算出平均誤差, 通過比較選出誤差最小的那個。

參考文獻:鄰近演算法/1151153?fr=aladdin

100天搞定機器學習

新增好友麻煩備註 github 100天搞定機器學習 day1資料預處理 100天搞定機器學習 day2簡單線性回歸分析 100天搞定機器學習 day3多元線性回歸 100天搞定機器學習 day4 6 邏輯回歸 100天搞定機器學習 day7 k nn 100天搞定機器學習 day8 邏輯回歸的數學...

100天搞定機器學習 Day11 實現KNN

機器學習100天 day1資料預處理 100天搞定機器學習 day2簡單線性回歸分析 100天搞定機器學習 day3多元線性回歸 100天搞定機器學習 day4 6 邏輯回歸 100天搞定機器學習 day7 k nn 100天搞定機器學習 day8 邏輯回歸的數學原理 100天搞定機器學習 day9...

100天搞定機器學習 Day3多元線性回歸

前情回顧 第二天100天搞定機器學習 day2簡單線性回歸分析 1 我們學習了簡單線性回歸分析,這個模型非常簡單,很容易理解。實現方式是sklearn中的linearregression,我們也學習了linearregression的四個引數,fit intercept normalize copy...