機器學習 ~ KNN 演算法
機器學習 ~ KNN 演算法
資料來源: https://github.com/jash-git/Classical-lVIachine-Learning-Algorithms-in-Practice-by-Java
假定某個人有20 個親密的朋友,其中有9 個人的愛好是打籃球, 6 個人的愛好是打乒乓球, 5 個人的愛好是打排球,那么就可以猜測這個人更可能喜歡打籃球。
這個過程就是利用KNN 算法思想進行分類的過程,其標准的描述如下:假定有三類體育運動分別是籃球、乒乓球和排球,要求判斷這個用戶喜愛的運動。
根據上述過程,要做出這個判斷,首先得找出用戶親密的朋友,而且數量是20 個,然后根據這20 個親密的朋友的愛好做出判斷。
由此類推到KNN 算法。K-近鄰算法是一款簡單實用的分類算法,通過測量不同樣本之間的距離,然后根據距離最近的K 個鄰居來進行分類。
整個分類過程主要有三個步驟:
第一,算距離。要判斷哪些是用戶親密的朋友,需要一個鄰近度量方法。
第二,求近鄰。“ 20 個” 就是用戶近鄰用戶,為什么是20 個?這就是K 值的選擇問題。
第三,做決策。用戶的愛好最終是與近鄰用戶人數最多的一個類別,這里釆用了多數表決的方法進行分類決策,可以概括為“隨大流”的思想。