机器学习——朴素贝叶斯代码实现

代码:

链接:https://pan.baidu.com/s/17Cm6Yq99WCT3XB0D19fqGA?pwd=3kfh 
提取码:3kfh

运行结果:

机器学习——朴素贝叶斯代码实现_第1张图片 

 判断是正常邮件还是垃圾邮件的概率:

判断的结果:

反思

朴素贝叶斯分类的优缺点:

优点:

  • 算法逻辑简单,易于实现
  • 分类过程中时空开销小

缺点:

  • 理论上,朴素贝叶斯与其他分类方法相比具有最小的误差率,但是实际上并非如此,因为朴素贝叶斯模型假设属性之间相互独立,这往往在实际中是不成立的,在属性个数比较多,或者属性之间相关性较大时,分类效果不好。
  • 在属性相关性较小时,朴素贝叶斯的性能最为良好。对于这一点,有关朴素贝叶斯之类的算法通过考虑部分关联性适度改进

反思

  •  首先先验集并不是从一个大样本中筛选出来的,所以导致每一个类的初始先验概率相同,事实上垃圾邮件的数量会多于正常邮件,搜狗中也并不是这九个类的先验概率相同
  • 如果真的按照朴素贝叶斯来计算的话,概率相乘会有许多概率相乘,多个接近0的小数相乘会容易导致python溢出,导致概率归为0,因此我么使用math.log函数的性质,将内部乘转化为外部的加法。

 

你可能感兴趣的:(人工智能)