目录
注意: 本部分内容只需Python实现即可。
一、认识knn算法
其实,knn就是寻找未知分类的离它最近的n个已知数据,然后来看它应该是属于哪一类的
二、算法原理
首先,简单来说有几个步骤(通用步骤)
1.计算距离(常用欧几里得距离或马氏距离)
因为要计算所求的这个点与别的相差多远
2.升序排列
意思就是距离最近的排前面,距离最远的排后边
3.取前k个
根据排序进行取值
4.加权平均
然后对取的前k个进行加权平均(注意不能用算术平均)
注意:
(1)k的值选取
k太大,会导致分类模糊;k太小,会受个例影响,导致波动较大
(2)如何选取k
当然如果你是老手,你可以靠经验来确定如何取k了;但如果没有把握,可以根据均方根误差来选取k。(后者是比较可靠的办法哦)举例:如下图可见,直接找到峰点即可,可选取k
三、实战应用
1、下载数据集并导入包
数据集:使用的是一个癌症的检测数据,由于文件无法放在这里,在此放个学习视频链接