KNN 的简易实现 笔记
2014-11-07 17:54
155 查看
书上有一部分的变量名字很长 然后偷换了一下 就变成了比较容易懂的了
主要是那个小驼峰命名实在是有点蛋疼了 我还是喜欢下划线
1、确定已知的类别数据集中的点到当前点之间的距离
2、按照距离递增次序排序
3、选取与当前点距离最小的k个点
4、确定前k个点所在的类别的出现频率
5、返回前k个点出现频率最高的类别作为当前点的预测分类
主要是那个小驼峰命名实在是有点蛋疼了 我还是喜欢下划线
from numpy import * import operator def createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group,labels group,labels=createDataSet(); #print group #print labels def classify0(inX,dataSet,labels,k): row_size=dataSet.shape[0] diffMat = tile(inX,(row_size,1)) - dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) dis = sqDistances**0.5 # print dis rk = dis.argsort() # print rk sum={} for i in range(k): j = labels[rk[i]] sum[j]=sum.get(j,0)+1 _sort=sorted(sum.iteritems(),key=operator.itemgetter(1),reverse=True) return _sort[0][0] print classify0([999,999],group,labels,3)
1、确定已知的类别数据集中的点到当前点之间的距离
2、按照距离递增次序排序
3、选取与当前点距离最小的k个点
4、确定前k个点所在的类别的出现频率
5、返回前k个点出现频率最高的类别作为当前点的预测分类
相关文章推荐
- Android开发学习笔记(十)实现一个简易的开场界面
- 学习笔记之 Servlet容器服务器原理 简易实现代码
- Socket入门笔记 用TcpClient实现一个简易聊天室
- CS231n课程学习笔记(一)——KNN的实现
- Django框架学习笔记(16.利用ajax实现简易的验证)
- 学习笔记:使用Web Service Software Factory开发简易留言本服务以及Mobile调用实现-1.创建Service
- 【KNN近邻算法】实现识别简单数字验证码(算法原理+代码笔记)
- 学习笔记——Kaggle_Digit Recognizer (KNN算法 Python实现)
- 数据挖掘笔记-分类-KNN-原理与简单实现
- 机器学习实战笔记(Python实现)-02-k近邻算法(kNN)
- KnnR语言实现学习笔记
- 安卓学习笔记---实现简易播放器(带有进度条,开始与结束时间,暂停与播放)
- 运维笔记22 (apache的基本配置,静态网页,动态cgi,论坛搭建,squid实现正向,反向代理,简易cdn加速)
- Java学习笔记——实现一个简易记事本Notepad的编写
- 数据挖掘笔记-分类-KNN-原理与简单实现
- Hadoop学习笔记二 - kNN算法实现用户风险分类
- 机器学习实战笔记(Python实现)-02-k近邻算法(kNN)
- spark-knn的简易实现
- JAVA学习笔记_前台实现简易的省市联动
- java学习笔记: 实现简易局域网聊天程序