发布时间:2024-03-15 09:30:01
通过两节知识的学习,相信你对朴素贝叶斯算法有了初步的掌握,本节将实际应用朴素贝叶斯算法,从实战中体会算法的精妙之处。学校女生的概率:P(女生)= 0.55 女生中穿裤子的概率:P(裤子|女)= 0.5 学校中穿裤子的概率:P(裤子)= 0.45 + 0.275= 0.725知道了上述概率,下面使用贝叶斯公式求解 P(女生|裤子) 的概率:
P(女|裤子) = P(裤子|女生) * P(女生) / P(裤子) = 0.5 * 0.55 / 0.725 = 0.379利用上述公式就计算除了后验概率 P(女生|裤子) 的概率,这里的 P(女生) 和 P(裤子)叫做先验概率,而 P(裤子|女生) 就是我们经常提起的条件概率“似然度”。
在 sklearn 库中,基于贝叶斯定理的算法集中在 sklearn.naive_bayes 包中,根据对“似然度 P(xi|y)”计算方法的不同,我们将朴素贝叶斯大致分为三种:多项式朴素贝叶斯(MultinomialNB)、伯努利分布朴素贝叶斯(BernoulliNB)、高斯分布朴素贝叶斯(GaussianNB)。另外一点要牢记,朴素贝叶斯算法的实现是基于假设而来,在朴素贝叶斯看来,特征之间是相互独立的,互不影响的。
高斯朴素贝叶斯适用于特征呈正态分布的,多项式贝叶斯适用于特征是多项式分布的,伯努利贝叶斯适用于二项分布。
使用朴素贝叶斯算法,具体分为三步:
下面通过鸢尾花数据集对朴素贝叶斯分类算法进行简单讲解。如下所示:
#鸢尾花数据集 from sklearn.datasets import load_iris #导入朴素贝叶斯模型,这里选用高斯分类器 from sklearn.naive_bayes import GaussianNB #载入数据集 X,y=load_iris(return_X_y=True) bayes_modle=GaussianNB() #训练数据 bayes_modle.fit(X,y) #使用模型进行分类预测 result=bayes_modle.predict(X) print(result) #对模型评分 model_score=bayes_modle.score(X,y) print(model_score)
输出结果:
预测分类: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2] 模型评分: 0.96