k近邻算法
2016-06-15 16:02
399 查看
import numpy as np import operator def create_data(): """创建数据样本""" group=np.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0,0.2]]) #样本点 labels=['A','A','B','B','B'] #对应的样本类别 return group,labels def k_0(inx,group,labels,k): """k近邻算法,inx要判别的数据""" data_size=group.shape[0] #数据大小,即几个样本 distances=((np.tile(inx,(data_size,1))-group)**2).sum(axis=1)**0.5 #判别点与样本中每点的距离。tile字面意思是铺开,这里所表现的功能是把inx重复data_size行1列。sum(array,axis),axis是方向的选择,数列竖着加还是横着加。 sorted_distances=distances.argsort() #把距离从小到大排序 count={} #建立一个字典 for i in range(k): vote_label=labels[sorted_distances[i]] #前k个距离最短的类别 count[vote_label]=count.get(vote_label,0)+1 #把结果插入字典,格式是 ‘类别’:‘计数’ sorted_count=sorted(count.iteritems(),key=operator.itemgetter(1),reverse=True) #将字典排序 return sorted_count[0][0] #取第一个结果
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法