在此仅将原文代码要做的修改附上

修改前 '''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 代码相关推荐

  1. 机器学习算法与Python实践之(六)二分k均值聚类

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  2. 机器学习算法与Python实践之(五)k均值聚类(k-means)

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  3. 机器学习算法与Python实践之(三)支持向量机(SVM)进阶

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  4. 机器学习算法与Python实践之(二)支持向量机(SVM)初

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  5. 机器学习算法与Python实践之(二)支持向量机

    http://blog.csdn.net/zouxy09/article/details/17291543 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己 ...

  6. 机器学习算法与Python实践之(四)支持向量机(SVM)实现

    机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...

  7. 机器学习算法与Python实践之(二)支持向量机(SVM)初级

    机器学习算法与Python实践之(二)支持向量机(SVM)初级 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...

  8. 机器学习算法与Python实践之(二)k近邻(KNN)

      机器学习算法与Python实践之(二)k近邻(KNN) (基于稀疏矩阵的k近邻(KNN)实现) 一.概述 这里我们先来看看当我们的数据是稀疏时,如何用稀疏矩阵的特性为KNN算法加速.KNN算法在之 ...

  9. 机器学习算法与Python实践之逻辑回归(Logistic Regression)

    转载自:http://blog.csdn.net/zouxy09/article/details/20319673 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书. ...

  10. 机器学习算法与Python实践之k均值聚类(k-means)

    机器学习算法与Python实践之(五)k均值聚类(k-means) zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是 ...

最新文章

  1. redis的分布式解决方式--codis (转)
  2. python画简单图片-Python绘制“高颜值”桑基图
  3. SQL 语句使用to_char函数时,检索结果有空格
  4. 『数据中心』供配电与空调设计基础知识
  5. 美国计算机科学专业申请要求,美国计算机科学专业好申请吗?申请要求高不高...
  6. 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
  7. 数学和物理太难?这些动图让你秒懂抽象概念
  8. header中Content-Disposition的作用
  9. 操作系统(10)-虚拟内存
  10. 糍粑大叔的独游之旅-u3d实现弹出菜单(上)-动态列表
  11. javascript高级程序设计 Boolean类型
  12. Chrome的两个工具
  13. 朴素贝叶斯(naive Bayes)原理与应用
  14. 外螺纹对照表_常用螺纹规范对照表
  15. 毕业论文中计算机代码重复吗,知网查重程序代码算重复吗?
  16. 呼吸机吸气触发:压力触发与流量触发
  17. 魔百盒ZXV10 B863AV3.2-M/B863AV3.1-M2_S905L3A-B_线刷+卡刷精简固件
  18. java求矩阵的逆矩阵_Java逆矩阵计算
  19. 联想装win7驱动遇到问题的解决
  20. 什么是ICP备案?需要准备哪些资料?

热门文章

  1. kafka第二次课!!!
  2. 我花三个月看了200G×××教程,领悟了你的×××为什么不赚钱!
  3. 使用功能点估算模型评估软件测试的工作量
  4. 马来西亚php怎么样,科学网—游马来西亚的几点感想 - 梁生的博文
  5. python技术--Linux基础01
  6. 神威太湖之光超级计算机搭载了40960,神威·太湖之光超级计算机上实现了千万核超大规模并行计算...
  7. alanwang[GDOU] 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入
  8. 108. 将有序数组转换为二叉搜索树
  9. 博客备份系统之一:PDF,Word,TXT文件操作类
  10. 记录一次 CPU sy 过高的排查经历