Knn算法(机器学习)入门(Python实现)
看到這個名字,是不是覺得很高大上?
看到網上的那些大佬寫了一堆的代碼,一堆的分析,是不是有點頭昏腦脹?
這還是機器學習中最簡單的算法么?
# ===================
如果你也遇到了什么這些迷惑,我想選擇看這篇文章,可能會對你有很大的幫助,因為我也不喜歡那些復雜的推理什么的。(好吧,只是因為想安慰你們才這么說的)
相信短短的20行代碼就會讓你快速掌握Knn算法(機器學習中最簡單算法)
為了幫助很多對于算法不太理解的人,我做了一些幫助清單(如果遇到Knn算法中,哪個用法或者是函數不懂的話,就看這個清單,都是很短的東西)
1.tile()函數講解
2.sum(axis = 1)講解
3.numpy.argsort()函數的講解
4.operator.itermgetter()函數的講解
很多很細心的朋友就可以看到,這個代碼在網上很多都有,但是,你搜索的很多也是長的差不多的代碼,但其實那些代碼,現在,在本機上,并不能通過。
但是這個我是在Pycharm 上運行了沒有問題的代碼。
至于原因,大家可以在仔細比對下代碼的差異性,我在這留給大家一個進步的機會,實在看不出來,可以發信息給我。
第一函數是創造一個數據集(我就按照特性寫了個數據集),所以是創造一個數據集,但是實際應用中,多半都是從哪收集的或者是別的什么的方式得到的數據,但是內容沒有很大區別。
classify0才是knn算法是實現部分
然后后面那幾句是測試代碼。(可以理解為main函數,至于為什么我沒寫main,那是因為我懶)
Knn 的意思就是k個最近鄰(會英語的一下就理解了)
就是一堆數據,然后,選一個k
再把你要算的數據拿出來,(inX)放到這個函數中
把這些點那些參數都理解為坐標。
我們想要考慮的那個樣本點和原來的數據集距離。
這里用的是歐式距離(是不是逼格很高? 其實就是 根號下的平方和)
如果你上個高中的數學課(或者還沒有忘記的話)你所知道的算兩點距離的方法就是算的是歐式距離
(對了,你要是上面這個都不知道,要么你自個看看百度百科,要么,你就是點錯了才看我這文章的emmm)
算出那么多距離之后,之前不是確定了一個k值了么?就把最小的那前k個拿出來,看下有多少個類型的點。并統計下概率。
就是預測值和概率了。
看完上面的入門版,可以接著看進階版的代碼(還是同樣的問題)
最后,老套路,宣傳一波自己的公眾號!(求關注哇!)
本人中大一肥宅,歡迎大家關注,請掃下面的二維碼(〃’▽’〃)
總結
以上是生活随笔為你收集整理的Knn算法(机器学习)入门(Python实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: operator.itermgetter
- 下一篇: [笔记]ndarray切片(python