从零开始实现朴素贝叶斯分类算法(离散特征情形)
Posted 风雪夜归子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始实现朴素贝叶斯分类算法(离散特征情形)相关的知识,希望对你有一定的参考价值。
声明:版权所有,转载请联系作者并注明出处:
http://blog.csdn.net/u013719780?viewmode=contents
知乎专栏:
https://www.zhihu.com/people/feng-xue-ye-gui-zi
朴素贝叶斯算法是基于贝叶斯定理和特征之间条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯算法实现简单,学习和预测的效率都很高,是一种常用的方法。
本文考虑当特征是离散情形时,朴素贝叶斯分类方法的原理以及如何从零开始实现贝叶斯分类算法。
1. 朴素贝叶斯算法原理
1.1 贝叶斯定理
根据贝叶斯定理,对一个分类问题,给定样本特征x,样本属于类别y的概率是
p(y|x)=p(y)p(x|y)p(x)(1)
在这里,x是一个特征向量,设x维度为n。因为朴素的假设,即特征之间条件独立,根据全概率公式展开,公式(1)可以写成
p(y=ck|x=(x1,x2,...,xn))=p(y=ck)p(x|y=ck)p(x)=p(y=ck)p(x=(x1,x2,...,xn)|y=ck)p(x)=p(y=ck)p(x=x1|y=ck)p(x=x2|y=ck)...p(x=xn|y=ck)p(x)=p(y=ck)∏ni=1p(x=xi|y=ck)p(x)=p(y=ck)∏ni=1p(x=xi|y=ck)∑nlabelsk=1p(x|y=ck)p(y=ck)=从零开始实现朴素贝叶斯分类算法(连续特征情形)