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

根据自己的理解,把书上的代码都遍历了一遍
又自己写了一遍,发现了一些错误,现在贴上来
机器学习实战-朴素贝叶斯
文章图片

这个写的第一个函数,要注意append和extend的用法的区别
在这里,因为item仅仅是一个值,一个元素,所以只能用append,不能用extend
具体二者的区别看python文档
机器学习实战-朴素贝叶斯
文章图片

这个函数没啥大的问题,但是要注意line列表的建立方式,我之前一直都没这么用过
还有index这个内建函数,其实还挺好用的
机器学习实战-朴素贝叶斯
文章图片

这个函数最后发生了一些错误
错误在原来的class0list和class1list是列表类型,然后在for循环中,与linevector相加时,居然是拼接在一起了,跟我预想的不一致
需要先转换成array类型才可以进行数值计算
看一下几个示例:
机器学习实战-朴素贝叶斯
文章图片

所以后来才改正过来
还有就是最后的计算probclass0的过程,列表类型可能是无法直接跟一个整数相除,所以这里报错了
看一下错误提示:
机器学习实战-朴素贝叶斯
文章图片

以上就是遇到的一些问题
下面贴一下这个函数的代码:
机器学习实战-朴素贝叶斯
文章图片

最后贴一下输出
【机器学习实战-朴素贝叶斯】机器学习实战-朴素贝叶斯
文章图片

    推荐阅读