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

根据自己的理解,把书上的代码都遍历了一遍

又自己写了一遍,发现了一些错误,现在贴上来

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

这个写的第一个函数,要注意append和extend的用法的区别

在这里,因为item仅仅是一个值,一个元素,所以只能用append,不能用extend

具体二者的区别看python文档

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

这个函数没啥大的问题,但是要注意line列表的建立方式,我之前一直都没这么用过

还有index这个内建函数,其实还挺好用的

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

这个函数最后发生了一些错误

错误在原来的class0list和class1list是列表类型,然后在for循环中,与linevector相加时,居然是拼接在一起了,跟我预想的不一致

需要先转换成array类型才可以进行数值计算

看一下几个示例:

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

所以后来才改正过来

还有就是最后的计算probclass0的过程,列表类型可能是无法直接跟一个整数相除,所以这里报错了

看一下错误提示:

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

以上就是遇到的一些问题

下面贴一下这个函数的代码:

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

最后贴一下输出

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