最新公告
  • 欢迎光临数据科学与编程,我们是数据学科学兴趣交流小组立即加入我们
  • 朴素贝叶斯算法

    今天要讲的算法是朴素贝叶斯(Naive Bayes)。相较于之前的支持向量机等模型,朴素贝叶斯就要简单多了。朴素贝叶斯是一种基于贝叶斯定理和特征条件独立假设的分类算法。

     

    简单而言,对于给定的训练数据,朴素贝叶斯先基于特征条件独立假设学习输入和输出的联合概率分布,然后基于此分布对于新的实例,利用贝叶斯定理计算出最大的后验概率。朴素贝叶斯不会直接学习输入输出的联合概率分布,而是通过学习类的先验概率类条件概率来完成。

     

    所谓朴素贝叶斯中朴素的含义,即特征条件独立假设,条件独立假设就是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使得朴素贝叶斯的学习成为可能。朴素贝叶斯算法具体步骤如下。

    首先计算类先验概率:

    类先验概率可直接用极大似然估计进行计算。

    然后计算类条件概率:

    最后给定新的实例,计算其对应的最大后验概率,然后判断其所属的类别:

    以上就是朴素贝叶斯的基本原理。下面基于numpy和pandas来实现朴素贝叶斯算法。

    导入package:

     


    创建示例数据集:


    取出特征和标签:


     

    定义朴素贝叶斯训练过程:


     

    拟合示例如下:

    最后定义预测函数:


    给定测试实例并进行预测:


     

    最后也可以定义一个Naive_Bayes的类对上述过程进行封装:


    以上就是本节内容,下一讲我们来看看贝叶斯分类的另一种形态——贝叶斯网络。完整代码文件和数据可参考笔者GitHub地址:

    https://github.com/luwill/machine-learning-code-writing

    参考资料:

    https://github.com/SmirkCao/Lihang

    李航 统计学习方法

    本站上原创文章未经作者许可,不得用于商业用途,仅做学习交流使用,本站免责声明。转载请注明出处,否则保留追究法律责任的权利。《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
    数据科学与编程 » 朴素贝叶斯算法

    发表评论

    • 52会员总数(位)
    • 310资源总数(个)
    • 30本周发布(个)
    • 1 今日发布(个)
    • 331稳定运行(天)

    提供最优质的博文资源集合

    立即阅览 了解详情