KNN-1 python 实现
2016-06-14 12:17
295 查看
#coding=utf-8 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#KNN算法实现def knn_classify0(inx,dataSet,labels,k): #inx 用于分类的输入向量 #dataSet 输入的训练样本集 #标签 labels #k 最近邻居的数目 dataSetSize= dataSet.shape[0] #tile函数是重复函数 diffmat = tile(inx, (dataSetSize,1)) - dataSet sqdiffmat = diffmat**2 #对数组按行求和 sqdistance = sqdiffmat.sum(axis=1) distance=sqdistance**0.5 #对数组按列排序,返回索引值 sortedDisIndex = distance.argsort(axis=0) #建立字典 classCount={} for i in range(k): votelabel=labels[sortedDisIndex[i]] #字典的get方法(a,b),如果字典里没有此key返回b,有返回key_value。不断的累积标签对应的数值 classCount[votelabel]=classCount.get(votelabel,0)+1 sortedclassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True) return sortedclassCount[0][0]
group,label=createDataSet()result0=knn_classify0([2,2], group, label, 3)print result0
group,label=createDataSet()result0=knn_classify0([2,2], group, label, 3)print result0
相关文章推荐
- Python中的sorted函数以及operator.itemgetter函数 (转)
- KNN-1 可能用到的python 知识点
- python 基础
- urllib2抓取网页出现中文编码问题
- Python模块包中__init__.py文件功能分析
- Python学习-with用法
- Python解析xcodebuild -showsdks
- Python计算字符宽度的方法
- 利用python中的PIL进行矩阵与图像之间的转换
- python :用numpy把数据写进文件
- Python 中如何创建 mock?
- Python中文分词实现方法(安装pymmseg)
- Python 情感分析
- Python Mock是什么
- python学习笔记 协程
- Python socket编程
- python将图像转化为矩阵
- Python模拟表单提交登录广工图书馆
- Python找出list中最常出现元素的方法
- python定时关机小程序