贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理(Bayes Theorem)为基础,采用了概率推理方法
算法原理
贝叶斯定理提供了一种计算假设概论的方法
朴素贝叶斯分类
贝叶斯分类算法在处理文档分类核垃圾邮件过滤有较好的分类效果
高斯朴素贝叶斯分类
原始的朴素贝叶斯分类只能处理离散数据,当处理连续变量的时候,可以使用高斯朴素贝叶斯完成分类人物,处理连续数据时,一种经典的假设是与每个类相关的连续变量是服从高斯分布的
高斯朴素贝叶斯公式如下
下面利用上面这个公式通过身高、体重和脚长数据来判定一个人是男性还是女性,身体特征的统计数据如下表所示
根据朴素贝叶斯公式,计算两两变量之间的后验概率,由于身高 体重 脚长都是连续变量,不能采用离散变量的方法计算概率,而且由于样本太少,所以也无法区分成区间计算,这时可以假设男性和女性的身高,体重和脚长都服从高斯分布,通过样本计算出均值和方差
多项式朴素贝叶斯分类
多项式朴素贝叶斯(Multinomial Naïve Bayes)经常被用于处理多分类问题,比起原始的朴素贝叶斯分类效果有了较大的提升。其公式如下
朴素贝叶斯分类应用
Scikit-learn模块中有Naïve Bayes子模块,包含了各种贝叶斯算法。关键在于将分类器设置为朴素贝叶斯分类器,接着调用分类器训练并进行分类
下面对Iris数据集进行朴素贝叶斯分类
结果如下 大致可以分为六类
代码如下
from sklearn.datasets import load_iris from sklearn.naive_bayes import GaussianNB iris = load_iris() clf = GaussianNB()#设置高斯贝叶斯分类器 clf.fit(iris.data,iris.target)#训练分类器 y_pred = clf.predict(iris.data)#预测 print("Number of mislabeled points out of %d points:%d" %(iris.data.shape[0],(iris.target!= y_pred).sum()))
创作不易 觉得有帮助请点赞关注收藏~~~