iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
自我挑戰組

我的Python小筆記系列 第 26

【Day26-KNN鄰近演算法】

  • 分享至 

  • xImage
  •  

這篇會將Python訓練模型套用一些常見使用的演算法來告訴讀者,主要是給想使用Python做機器學習的人做基本介紹。

KNN 全名又叫做K Nearest Neighbor,或者你可以說鄰近演算法也可以,鄰近兩個字形容接近或者附近的意思,那跟我們的資料有什麼關係呢?我用下一張圖告訴你

資料集來源:
https://www.kaggle.com/datasets/djhavera/beijing-pm25-data-data-set

一份龐大的資料集有很多一筆一筆的資料如果我們用散布圖的方式它大概會長這樣,我們可以很清楚的發現一筆資料的就代表一個點將這些資料一個一個都點在圖上面就是完整的資料集,那KNN就是利用點與點的距離關係進行分類。(我是隨便找一張圖解釋,但實際上資料分布圖部會那麼密集@@)

那我怎麼使用這個演算法呢?
通常我們會令K為一個數字,K的意思是找出距離你最近的K筆資料進行分類,假設K=2,那所有的資料都會跟你自己本身算出距離後,找出你自己與前2筆相近的資料,然後再看你自己跟哪一組數據資料的鄰居數量最多,就加入哪一組,重複上述動作直到資料分類完整後就結束分類。

那要注意的是K的大小會影響模型最終的分類結果,所以說設K的數字也是一個學問,要一直反覆實驗K的數字直到最佳解答,或者可以使用一個叫做手肘法,可以快速幫你找到K的數字,那算資料距離的部分也可以透過一些演算法像是曼哈頓、歐基里德、明氏演算法...等等的距離公式,但講下去篇幅就變很大了,有興趣的讀者可以搜尋一些大神的文章,這邊就介紹重點的部分。

那今天的內容講到這邊,謝謝觀看!!


上一篇
【Day25-資料處理實作】
下一篇
【Day27-決策樹演算法】
系列文
我的Python小筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言