机器学习之K近邻算法——1、kNN分类算法(基本原理)
2014-12-20 17:07
337 查看
运行环境(Win7):
1、下载python3.3.exe
2、在http://sourceforge.net/projects/numpy/files/中下载numpy-1.9.1-win32-superpack-python3.3.exe
kNN分类算法的基本原理:
给定训练集A和测试样本t,选择t与A距离最近的k个训练样本,选择这些训练样本中出现次数最多的标签作为测试样本t的新标签。
kNN分类算法的伪代码流程:
1、准备无标签测试数据:inX=[0,0]
2、准备样本数据(特征值):dataSet={[[1,1],[1,2],[0,0],[0,1]])
3、准备样本数据(标签/目标值): labels=[‘A’,‘A’,‘B’,‘B’]
4、计算已知样本数据中的每个点和当前测试点之间的距离
4.1、利用NumPy扩充数组函数tile来扩充测试数据,按照样本数据的行数扩充为:
diffMat=tile(inX,(4,1))={[[0,0],[0,0],[0,0],[0,0]]}
tile函数的简单用法如下:
4.2、利用欧式距离公式(如下),计算测试向量点和样本向量点之间的距离:
diffMat=tile(inX,(4,1))-dataSet #相减
sqDiffMat=diffMat**2 #平方
sqDistances=sqDiffMat.sum(axis=1) #axis=1表示行方向相加,即平方相加
distances=sqDistances**0.5 #开方
5、将距离的值按照从小到大进行升序排序
6、取距离最小的k个点的分类值
7、计算k个点中发生频率最高的标签
kNN分类算法的代码:
测试结果如下:
1、下载python3.3.exe
2、在http://sourceforge.net/projects/numpy/files/中下载numpy-1.9.1-win32-superpack-python3.3.exe
kNN分类算法的基本原理:
给定训练集A和测试样本t,选择t与A距离最近的k个训练样本,选择这些训练样本中出现次数最多的标签作为测试样本t的新标签。
kNN分类算法的伪代码流程:
1、准备无标签测试数据:inX=[0,0]
2、准备样本数据(特征值):dataSet={[[1,1],[1,2],[0,0],[0,1]])
3、准备样本数据(标签/目标值): labels=[‘A’,‘A’,‘B’,‘B’]
4、计算已知样本数据中的每个点和当前测试点之间的距离
4.1、利用NumPy扩充数组函数tile来扩充测试数据,按照样本数据的行数扩充为:
diffMat=tile(inX,(4,1))={[[0,0],[0,0],[0,0],[0,0]]}
tile函数的简单用法如下:
4.2、利用欧式距离公式(如下),计算测试向量点和样本向量点之间的距离:
diffMat=tile(inX,(4,1))-dataSet #相减
sqDiffMat=diffMat**2 #平方
sqDistances=sqDiffMat.sum(axis=1) #axis=1表示行方向相加,即平方相加
distances=sqDistances**0.5 #开方
5、将距离的值按照从小到大进行升序排序
6、取距离最小的k个点的分类值
7、计算k个点中发生频率最高的标签
kNN分类算法的代码:
测试结果如下:
相关文章推荐
- K最近邻分类算法(KNN)
- 编程实践--KNN分类算法--手写数字识别任务
- 机器学习(二)k-近邻分类算法(kNN)
- KNN分类算法及MATLAB程序与结果
- Peter Harrington, Machine learning, note,K最近邻(k-Nearest Neighbor,KNN)分类算法
- python 机器学习KNN分类算法
- 斯坦福CS231n项目实战(一):k最近邻(kNN)分类算法
- K-近邻分类算法KNN
- 数据挖掘之分类算法---knn算法(Matlab代码)
- 分类算法-----KNN
- KNN & NaiveBayes 分类算法
- python机器学习之KNN分类算法
- KNN邻近分类算法
- KNN分类算法java实现
- 机器学习之kNN分类算法
- 数据挖掘分类算法--KNN
- 实验二kNN算法之1NN分类
- 《机器学习实战》--k近邻分类算法kNN
- 【C++】基于特征向量的KNN分类算法
- 【模式识别】K-近邻分类算法KNN