j简单的分类实现-K近邻
2014-12-24 20:12
92 查看
1 __author__ = 'worfzyq'
2 from numpy import *
3 import operator
4
5 def creatDataset() :
6 group=array([[1.0,1.1],[1.0,1.0],[0.0,0.0],[0,0.1]])
7 labels=['A','A','B','B']
8 return group,labels
9
def classify0(inX,dataSet,labels,k) :
dataSetSize=dataSet.shape[0] #返回数组得到维数
# print(dataSetSize)
diffMat=tile(inX,(dataSetSize,1))-dataSet #把inX扩展datasetSize-1维然后做减法
#print(diffMat)
sqDiffMat=diffMat**2 #乘方
#print(sqDiffMat)
sqDistances=sqDiffMat.sum(axis=1) #把每一列加起来
#print(sqDistances)
distances=sqDistances**0.5 # 得到距离
sortedDistIndicies=distances.argsort() #得到排好序得到下标
classCount={}
for i in range(k) :
voteIlabel=labels[sortedDistIndicies[i]]
classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
#print(sortedClassCount)
return sortedClassCount[0][0]
group,labels=creatDataset()
# print(group)
print(classify0([0,0],group,labels,3))
2 from numpy import *
3 import operator
4
5 def creatDataset() :
6 group=array([[1.0,1.1],[1.0,1.0],[0.0,0.0],[0,0.1]])
7 labels=['A','A','B','B']
8 return group,labels
9
def classify0(inX,dataSet,labels,k) :
dataSetSize=dataSet.shape[0] #返回数组得到维数
# print(dataSetSize)
diffMat=tile(inX,(dataSetSize,1))-dataSet #把inX扩展datasetSize-1维然后做减法
#print(diffMat)
sqDiffMat=diffMat**2 #乘方
#print(sqDiffMat)
sqDistances=sqDiffMat.sum(axis=1) #把每一列加起来
#print(sqDistances)
distances=sqDistances**0.5 # 得到距离
sortedDistIndicies=distances.argsort() #得到排好序得到下标
classCount={}
for i in range(k) :
voteIlabel=labels[sortedDistIndicies[i]]
classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
#print(sortedClassCount)
return sortedClassCount[0][0]
group,labels=creatDataset()
# print(group)
print(classify0([0,0],group,labels,3))
相关文章推荐
- .net简单算法实现无限级分类(一)
- net简单算法实现无限级分类(一)
- ecshop简单三部实现导航分类二级菜单
- 数据挖掘笔记-分类-KNN-原理与简单实现
- 数据挖掘笔记-分类-贝叶斯-原理与简单实现
- (转载)无限级分类的简单算法实现及代码重点讲解
- UDP:Java实现简单大文件传输 分类: 网络通讯 2014-09-21 20:21 320人阅读 评论(0) 收藏
- SVM实现多分类的程序基础工作(二)——通过一个简单libsvm例子迈入libsvm学习的大门
- K近邻分类算法与kdTree实现的伪代码(构造kdTree 和 kdTree上搜索最近邻)
- 数据挖掘笔记-分类-Adaboost-原理与简单实现
- [ASP]无限级分类的简单算法实现及代码重点讲解http://bbs.blueidea.com/thread-1982151-1-1.html
- ecshop简单三部实现导航分类二级菜单
- 简单三步实现导航分类二级菜单
- eclipse + libsvm-3.12 用SVM实现简单线性分类
- 无限级分类的简单算法实现及代码重点讲解。
- 无限级分类的简单算法实现及代码重点讲解(ASP)
- [ASP]无限级分类的简单算法实现及代码重点讲解
- VSM向量空间模型对文本的分类以及简单实现
- K近邻分类算法实现 in Python
- UDP:Java实现简单大文件传输 分类: 网络通讯 2014-09-21 20:21 319人阅读 评论(0) 收藏