郑捷 机器学习算法与编程实践 --ID3决策树 python3 代码
在此仅将原文代码要做的修改附上
修改前 '''def loadDataSet(self,path,labels):
d="/t"
d=d.encode(encoding="utf-8")
recordlist=[]
fp=open(path,"rb")
content=fp.read()
# print(content)
fp.close()
rowlist=content.splitlines()
print(rowlist)
recordlist=[row.split(d)for row in rowlist if row.strip()]
print(recordlist)
self.dataSet=recordlist
self.labels=labels
'''出错主要是recordlist=[row.split(d)for row in rowlist if row.strip()]会提示d类型错误,为此笔者将d强制转换后可运行,但发现self.dataSet所构成的列表阵列打印出来'0\t0\t0\t0\tno'形如此,其长度为1,表现为一个字符串,并不是文中想得到的[0.0, 0.0, 0.0, 0.0, 'no']这种形式的列表,所以后边计算都是错的,无法得出书本上的答案。考虑到这,将主要矛头对准这个loadData函数,查阅类似读取文件数据博客,资料,均未找到直接将 0 0 0 0 no这样的文本读出来并作为列表的代码,在翻看list相关资料时候看到列表相加便可得到所求列表,于是做以下尝试
将文本数据的数据信息与英文字符分开存储,数据字符先采用矩阵存储,然后利用tolist()函数转换为list 然后与英文列表相加实现所求形式的列表,最终得解,具体如下
def loadDataSet(self,path,labels):
fp = open(path)
lines= fp.readlines() #逐行读取文件
numberOfLines = len(lines) #获取文件的行数
returnMat = zeros((numberOfLines,4)) #创建一个矩阵
decVector = [] #存储决策标签向量
index = 0
for line in lines:
line = line.strip() #删除所有换行符
listFromLine = line.split('\t') #通过指定分割符对字符串切分
returnMat[index,:]=listFromLine[0:4]
classLabelVector.append((listFromLine[-1]))
index+=1
Matrix=returnMat.tolist()
index1=0;
for i in range(numberOfLines):
Matrix[index1]+=[classLabelVector[index1]];#[]必须加
#将classLabelVector[index]取出来的元素转换为列表然后完成相加否则报错
index1+=1
self.dataSet=Matrix
self.labels=labels
至此修改完毕,个人见解,如有其它简便方法,求留言指正
郑捷 机器学习算法与编程实践 --ID3决策树 python3 代码相关推荐
- 机器学习算法与Python实践之(六)二分k均值聚类
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 机器学习算法与Python实践之(二)支持向量机(SVM)初
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 机器学习算法与Python实践之(二)支持向量机
http://blog.csdn.net/zouxy09/article/details/17291543 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己 ...
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
机器学习算法与Python实践之(二)支持向量机(SVM)初级 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...
- 机器学习算法与Python实践之(二)k近邻(KNN)
机器学习算法与Python实践之(二)k近邻(KNN) (基于稀疏矩阵的k近邻(KNN)实现) 一.概述 这里我们先来看看当我们的数据是稀疏时,如何用稀疏矩阵的特性为KNN算法加速.KNN算法在之 ...
- 机器学习算法与Python实践之逻辑回归(Logistic Regression)
转载自:http://blog.csdn.net/zouxy09/article/details/20319673 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书. ...
- 机器学习算法与Python实践之k均值聚类(k-means)
机器学习算法与Python实践之(五)k均值聚类(k-means) zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是 ...
最新文章
- redis的分布式解决方式--codis (转)
- python画简单图片-Python绘制“高颜值”桑基图
- SQL 语句使用to_char函数时,检索结果有空格
- 『数据中心』供配电与空调设计基础知识
- 美国计算机科学专业申请要求,美国计算机科学专业好申请吗?申请要求高不高...
- 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
- 数学和物理太难?这些动图让你秒懂抽象概念
- header中Content-Disposition的作用
- 操作系统(10)-虚拟内存
- 糍粑大叔的独游之旅-u3d实现弹出菜单(上)-动态列表
- javascript高级程序设计 Boolean类型
- Chrome的两个工具
- 朴素贝叶斯(naive Bayes)原理与应用
- 外螺纹对照表_常用螺纹规范对照表
- 毕业论文中计算机代码重复吗,知网查重程序代码算重复吗?
- 呼吸机吸气触发:压力触发与流量触发
- 魔百盒ZXV10 B863AV3.2-M/B863AV3.1-M2_S905L3A-B_线刷+卡刷精简固件
- java求矩阵的逆矩阵_Java逆矩阵计算
- 联想装win7驱动遇到问题的解决
- 什么是ICP备案?需要准备哪些资料?
热门文章
- kafka第二次课!!!
- 我花三个月看了200G×××教程,领悟了你的×××为什么不赚钱!
- 使用功能点估算模型评估软件测试的工作量
- 马来西亚php怎么样,科学网—游马来西亚的几点感想 - 梁生的博文
- python技术--Linux基础01
- 神威太湖之光超级计算机搭载了40960,神威·太湖之光超级计算机上实现了千万核超大规模并行计算...
- alanwang[GDOU] 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入
- 108. 将有序数组转换为二叉搜索树
- 博客备份系统之一:PDF,Word,TXT文件操作类
- 记录一次 CPU sy 过高的排查经历