1、KNN解释
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。
所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
2、实例:预测电影类型
用于机器学习训练的表
2.1、算法实现
导入会使用到的库
打开表
存数据X、y
训练数据(机器学习)
预测电影类型
2.2、算法原理
计算目标点和标本点之间的距离,根据距离远近,得到对应的概率
3、实例:识别手写数字
这里我们准备了5000个手写的数字图片,其中4000个用于训练数据,1000个测试识别
3.1、算法实现
导包
读取显示图片
将5000个图片以2维数组的形式保存在data中
X存转成array格式的data、y存一个array格式的一维数组用于区分每个数字(0~9)
y里面存的数字就对应X里面的数据
从5000个图片中随机取其中4000个用于训练数据,1000个测试识别
sklearn中的训练数据必须是二位的
把X_train转成二维
选取邻近5个点作为标准训练数据训练标准
预测
比对前20个预测的值和训练数据的值
计算预测的准确率:正确率0.941
3.1、算法优化
knn.score可以预测并计算准确率
我们把近邻数值提高到20,发现准确率反而降低了
提高准确率:加上权重
更换距离计算方式:p,不写p默认=2是欧式距离,p=1是曼哈顿距离
开启多线程处理数据:n_job,n_job=-1时电脑有几个cpu就开启几个线程