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