Machine Learning 笔记之KNN算法
来源:互联网 发布:淘宝刻印落款加钱 编辑:程序博客网 时间:2024/06/06 01:21
#coding=utf8#data 为 [[data],class] 形式import mathclass trainSet: def __init__(self,data,clas): self.Data=[] for i in range(len(clas)): self.Data.append([data[i],clas[i]]) self.clas=lis=list(set(clas))class KNN: def __init__(self,trainSet,data,k): self.trainSet=trainSet self.clas=trainSet.clas self.k=k self.data=data self.result=self.__getResult() def __getResult(self): kDistance=[[]for i in range(len(self.trainSet.clas))] kdistance=[0 for i in range(len(self.trainSet.clas))] #print kDistance for i in range(len(self.trainSet.Data)): #print self.trainSet.Data[i] distance=self.__calDidtance(self.trainSet.Data[i][0],self.data) #print kDistance[self.__getIndex(self.trainSet.Data[i][1])] kDistance[self.__getIndex(self.trainSet.Data[i][1])].append(distance) for i in range(len(kDistance)): sumd=0 kDistance[i]=sorted(kDistance[i]) kDistance[i]=kDistance[i][0:self.k] for j in range(len(kDistance[i])): sumd+=kDistance[i][j] sumd=1.0*sumd/len(kDistance[i]) kdistance[i]=sumd self.result=self.clas[self.__findMin(kdistance)] #print 'aa',kDistance,kdistance,self.clas return self.result def __calDidtance(self,data1,data2): distance=0 for i in range(len(data1)): distance+=(data1[i]-data2[i])**2 distance=math.sqrt(distance) return distance def __getIndex(self,str1): index=0 for i in range(len(self.clas)): if self.clas[i]==str1: index=i #print 's',self.clas,str1,index return index def __findMin(self,kdistance): minD=999 index=0 for t in range(len(kdistance)): if minD>kdistance[t]: index=t minD=kdistance[t] return indexdata=[[1,1],[1,1.1],[2,2],[2,2.5]]cls=['A','A','B','B']train=trainSet(data,cls)inputData=[1.6,1.2]knn1=KNN(train,inputData,2)print "The input is : ", inputDataprint "The resullt is : ", knn1.result
阅读全文
0 0
- Machine Learning 笔记之KNN算法
- 【machine learning】KNN算法
- Machine learning in action ch02 KNN笔记
- Machine Learning in Action 学习笔记-(2)kNN k近邻算法
- Pythonic machine learning:KNN
- <machine learning traning> KNN
- Machine Learning---1--KNN
- Machine Learning in Action/机器学习实践:kNN算法之约会问题
- 【Machine Learning】KNN学习算法与C语言实现
- MACHINE LEARNING IN ACTION KNN
- Machine Learning 之 Learning
- Machine Learning笔记 之 关联项挖掘
- Machine Learning 学习 之 Kmeans 笔记
- 【用Python玩Machine Learning】KNN * 序
- 【用Python玩Machine Learning】KNN * 测试
- Machine Learning In Action:KNN(Python)
- 【Machine Learning in Action】Chap1|Classification|kNN
- Machine Learning---LMS 算法
- 服务器常见错误代码
- MapReduce实现简单的Wordcount
- Codeforces166E
- sqlserver2000 1433端口外网不能连接问题
- 字符串类型及操作
- Machine Learning 笔记之KNN算法
- hello
- 三分法
- TOP100summit:【分享实录-封宇】58到家多端消息整合之路
- 登陆注册
- 洛谷10月月赛R2-T3-Nephren Ruq Insania
- HOJ 2275 Number sequence(树状数组) 大于小于问题
- 8.通过和ServletAPI耦合的方式获取WEB资源
- 进程学习:进程间通信(system v IPC)2.共享内存