美文网首页
机器学习实战Py3.x填坑记—朴素贝叶斯

机器学习实战Py3.x填坑记—朴素贝叶斯

作者: 瘦长的丰一禾 | 来源:发表于2017-02-01 14:33 被阅读647次

没办法,虽让Py2.x和Py3.x是两种不同的语言呢,不可避免撸这章的时候还是出现问题。

在“程序清单4-5,文件解析及完整的垃圾邮件测试函数”代码中应将里面的setOfWords2Vec改为bagOfWords2VecMN

错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence

那是因为书上的下面这两行代码有点问题:
wordList = textParse(open('email/spam/%d.txt' % i).read()
wordList = textParse(open('email/ham/%d.txt' % i).read()
需要将上面的代码更为下面这两行:
wordList = textParse(open('email/spam/%d.txt' % i, "rb").read().decode('GBK','ignore') )
wordList = textParse(open('email/ham/%d.txt' % i,  "rb").read().decode('GBK','ignore') )

因为有可能文件中存在类似“�”非法字符。

在运行程序清单中代码时候出现错误:

del(trainingSet[randIndex])
TypeError: 'range' object doesn't support item deletion
将代码del(trainingSet[randIndex])上面第4行代码trainingSet = range(50)改为:
trainingSet = list(range(50))
因为是python3中range不返回数组对象,而是返回range对象  

运行<程序清单4-6 RSS源分类器及高频词去除函数>出现错误。
这些问题前面都已经遇到过了,轻车熟路。

AttributeError: 'dict' object has no attribute 'iteritems'
#将代码中的iteritems更改为items就好了

TypeError: 'range' object doesn't support item deletion
#将此行代码上面的第三行代码中的trainingSet = range(2*minLen)更改为
#trainingSet = list(range(2*minLen))就好了。

运行<程序清单4-7 最具表征性的词汇显示函数>时,如果用书上的
if p0V[i] > -6.0和if p1V[i] > -6.0时候则打印出来的非常长。将-6.0更改为大一些,则好一些,比如-5.4。

出现问题进行搜索参考博客:
[机器学习&数据挖掘]朴素贝叶斯数学原理
TypeError: cannot use a string pattern on a bytes-like object解决方法
处理UnicodeDecodeError: ‘XXX' codec can't decode bytes in position...的问题
python3中报错:TypeError: 'range' object doesn't support item deletion

相关文章

  • 机器学习实战 朴素贝叶斯

    title: 朴素贝叶斯 机器学习实战date: 2019-07-28tags: 机器学习 贝叶斯categori...

  • 机器学习实战Py3.x填坑记—朴素贝叶斯

    没办法,虽让Py2.x和Py3.x是两种不同的语言呢,不可避免撸这章的时候还是出现问题。 在“程序清单4-5,文件...

  • 朴素贝叶斯法解析实践

    教材选用《统计学习方法》,第一版,李航著;代码取自《机器学习实战》,人民邮电出版社; 朴素贝叶斯介绍 朴素贝叶斯法...

  • 机器学习数学原理(4)——朴素贝叶斯模型

    机器学习数学原理(4)——朴素贝叶斯模型 朴素贝叶斯模型(Naive Bayes Model),是一种基于贝叶斯定...

  • 朴素贝叶斯

    学习机器学习最简单的算法可以说就是 朴素贝叶斯了,今天分享下自己的学习心得。 什么是贝叶斯,什么是朴素贝叶斯 贝叶...

  • 机器学习实战-朴素贝叶斯

    前两章我们要求分类器作出艰难的抉择,不过分类器有时候会产生错误,这时会产生错误结果,这是可以要求分类器给出一个最优...

  • 机器学习实战-朴素贝叶斯

    朴素贝叶斯算法(Naive Bayes) 前两章学习的knn和决策树分类都直接给出了答案,但是不能避免一些分类错误...

  • 机器学习实战-朴素贝叶斯

    对于特征向量,拥有标签,即分类个数。我们对每一类标签计算概率:然后取概率最大的那个标签作为我们的分类。 为了实现这...

  • 朴素贝叶斯法

    朴素贝叶斯法 朴素贝叶斯法的学习与分类 朴素贝叶斯法的参数估计 朴素贝叶斯实现 高斯朴素贝叶斯实现 使用 skle...

  • 朴素贝叶斯

    机器学习实战 朴素贝叶斯算法可以要求分类器给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值。 基于贝叶斯决...

网友评论

      本文标题:机器学习实战Py3.x填坑记—朴素贝叶斯

      本文链接:https://www.haomeiwen.com/subject/acclittx.html