博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己实现的简易的knn算法
阅读量:6672 次
发布时间:2019-06-25

本文共 1132 字,大约阅读时间需要 3 分钟。

程序代码:

import csvimport randomimport operatorimport mathimport matplotlib.pyplot as plt#计算距离的函数def getdistance(testIntance,trainInstance):    length=len(testIntance)    distance=0    # 这个循环只能取到数字    for i in range(length):        testInstance1=float(testInstance[i])        trainInstance1=float(trainInstance[i])        distance+=(pow((testInstance1-trainInstance1),2))    # print(distance)    return math.sqrt(distance)#读文件with open(r'b.txt','rt') as f:    lines=csv.reader(f)    dataSet=list(lines)#测试点testInstance=[5,5]distances=[]for i in range(len(dataSet)):    dist=getdistance(testInstance,dataSet[i])    distances.append((dataSet[i],dist))# 到这里的distances是带有坐标和各个点与待测点距离的列表了# print(distances)# 这里采用寻找离他最近的4个样本,然后统计# 排序操作distances.sort(key=operator.itemgetter(1))# 对排序后的前k个值进行种类统计natj={}for i in range(5):    result=distances[i][0][2]    if result in tj:        tj[result]+=1    else:        tj[result]=1print(tj)# 把字典中统计的结果拿来比较,去统计数大的作为结果for key in tj:    if tjresult==None:        tjresult=key    if tj[key]>tj[tjresult]:        tjresult=key    print(tjresult)print(tjresult)

数据样式:

自己实现的简易的knn算法

转载于:https://blog.51cto.com/13831593/2173699

你可能感兴趣的文章
Python urllib HTTP头注入漏洞
查看>>
Spring Boot Tomcat 容器化部署实践与总结
查看>>
消除switch语句以获得更好的代码结构
查看>>
iOS 9上的网页唤醒APP(Universal Links)
查看>>
关于MySQL优化的几点总结
查看>>
div自适应填充剩余宽度的方法
查看>>
Python3 关键字nonlocal和global的用法与区别
查看>>
Wireshark 3.0.0 正式版发布,免费开源的网络数据包分析软件
查看>>
对象引论
查看>>
Jdk1.8新特性学习(Optional)
查看>>
聊聊flink taskmanager的jvm-exit-on-oom配置
查看>>
165. Compare Version Numbers
查看>>
激光SLAM导航技术日益成熟 推动机器人进入发展新时代
查看>>
ESMap+Html5+SpringBoot+FastDFS实现导航导购App
查看>>
CentOS7搭建LNMP--编译安装
查看>>
C++编译器优化
查看>>
golang slice append 后 capacity 增长的算法
查看>>
MP3转换AAC格式哪个音频转换器好
查看>>
黑苹果装机记录
查看>>
Xamarin.Forms vs Xamarin Native
查看>>