首页 / 算法 / 徒手实现 KNN算法问题汇总
徒手实现 KNN算法问题汇总
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了徒手实现 KNN算法问题汇总,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2212字,纯文字阅读大概需要4分钟。
内容图文
问题一:read_csv()读取文件,运行提示文件不存在
代码:import pandas as pd
data=pd.read_csv('D:\MachineLearning\study\vehicle.csv')
运行报错:FileNotFoundError: [Errno 2] File b'D:\\MachineLearning\\study\x0behicle.csv' does not exist: b'D:\\MachineLearning\\study\x0behicle.csv'
分析:1 不能使用中文的路径名和文件名 2 路径用 "\\"标记不是用\或者/,
修改后代码:data=pd.read_csv('D:/MachineLearning/study/vehicle.csv') 或 data=pd.read_csv('D:\\MachineLearning\\study\\vehicle.csv')
运行后结果:runfile('D:/MachineLearning/study/untitled1.py', wdir='D:/MachineLearning/study')
原因: 注意windows下路径中的反斜杠\和斜杠/及双斜杠\\区别,windows下\是转义字符,想表达\请用\\
问题二:pandas中利用 .iloc 选取数据&numpy数组切片操作
代码:feature=np.array(data.iloc[:,0:2])
分析: Pandas中基本数据结构是Series(数组)和Dataframe(类似二维数组),Pandas中提供了Index对象,每个 Series 都会带有一个对应的Index,用来标记不同的元素,Index 的内容不一定是数字,也可以是字母、中文等,.iloc:根据标签的所在位置,从0开始计数,选取列,loc:根据DataFrame的具体标签选取列
numpy的数组切片操作,一般是array[a:b,c:d],首先是看逗号,逗号前是取行的下标范围a到b-1,逗号后是取列的下标范围c到d-1 ,前面是行索引,后面是列索引;此处:取行全部数据,列从第0列开始取到第1列,第2列不算。即vehicle.csv数组中取出长度和宽度,标签列不取。
问题三:matplotlib.pylab 画散点图报语法错误
代码:plt.scatter(data['length'][data['label]=='car'],data['width'][data['label']=='car'],c='y')
plt.scatter(data['length'][data['label]=='truck'],data['width'][data['label']=='truck'],c='r')
运行报错:SyntaxError: invalid syntax
分析:matplotlib——pyplot和pylab区别 pylab包括了许多NumPy和pyplot模块中常用的函数。测试后发现不是导入问题,从正确的句子中复制黏贴这两段代码,可运行出正确结果。
修改后代码:
plt.scatter(data['length'][data['label']=='car'],data['width'][data['label']=='car'],c='y') #先取length的数值,里面有car和truck的长度,再单独取label那一行为car的值
plt.scatter(data['length'][data['label']=='truck'],data['width'][data['label']=='truck'],c='r') #先取width的数值,里面有car和truck的长度,再单独取label那一行为truck的值
运行后结果:正常显示散点图
原因:初始代码是打字上去的, 在[data['label]=='car'],这个地方,label后面少打了一个单引号 ' ,造成句法不通,散点图不显示;希望以后在写代码的过程中注意符号的对称。
内容总结
以上是互联网集市为您收集整理的徒手实现 KNN算法问题汇总全部内容,希望文章能够帮你解决徒手实现 KNN算法问题汇总所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。