KNN算法,对KNN相关介绍
1.什么是算法
比如就是想看一个东西的类别,那么就在这个东西的最近的周围取K个东西,判断这K个是什么类别。寻找未知分类的数据,离它最近的n个已知数据。
如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。
如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。
2.算法原理:
通用步骤:
计算距离(求未知点和其它之间的距离)(可以用欧几里得,或马氏距离)
升序排列(距离最近的排前面)
排序后取前K个
加权平均(差距很小,需要更高的权重)
K的取值:
太大:分类模糊
太小:个例影响大
靠经验选,或者试一试找精确度,均方根误差
3.代码运行
主要的问题是出现了:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xbb in position 53: illegal multibyte sequence
找了很多网上的办法都没成功,最后细研看到的一句话:保存时不能只是把文件的名字改成.csv这样就会报这样的错误,正确的做法应该是将文件另存的时候修改文件类型,就成功了。