分类算法 - 朴素贝叶斯

分类算法 - 朴素贝叶斯 首页 / 机器学习入门教程 / 分类算法 - 朴素贝叶斯

朴素贝叶斯算法是一种基于应用贝叶斯定理的分类技术,其中强烈假设所有预测变量彼​​此独立。简而言之,假设是某个类中某个要素的存在独立于同一类中其他任何要素的存在。

在贝叶斯分类中,主要的兴趣是找到后验概率,即给定某些观察到的特征的标签的概率。借助贝叶斯定理,无涯教程可以将其定量表示为:

无涯教程网

                         P(L|features)=P(L)P(features|L)P(features)

Python库,Scikit learning是最有用的库,可帮助在Python中创建Naive Bayes模型。在Scikit学习Python库下,具有以下三种朴素贝叶斯模型:

高斯朴素贝叶斯

它是最简单的朴素贝叶斯分类器,假设每个标签的数据均来自简单的高斯分布。

多项式朴素贝叶斯

另一个有用的朴素贝叶斯分类器是多项朴素贝叶斯,其中的特征假定是从简单的多项式分布中得出的,这种朴素的贝叶斯最适合代表离散计数的函数。

伯努利·朴素贝叶斯

另一个重要模型是伯努利·朴素贝叶斯(BernoulliNaïveBayes),其中的特征被假定为二进制(0和1)。

根据无涯教程的数据集,可以选择上述任何朴素贝叶斯模型。在这里,正在用Python实现高斯朴素贝叶斯模型-将从所需的导入开始,如下所示:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

现在,通过使用 Scikit learning 的 make_blobs()函数,可以生成具有高斯分布的点的斑点,如下所示:

from sklearn.datasets import make_blobs
X, y=make_blobs(300, 2, centers=2, random_state=2, cluster_std=1.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer');

接下来,对于使用 GaussianNB 模型,需要导入并使其对象如下:

from sklearn.naive_bayes import GaussianNB
model_GBN=GaussianNB()
model_GNB.fit(X, y);

现在,必须进行预测。可以在生成一些新数据之后执行以下操作-

rng=np.random.RandomState(0)
Xnew=[-6, -14] + [14, 18] * rng.rand(2000, 2)
ynew=model_GNB.predict(Xnew)

接下来,正在绘制新数据以查找其边界-

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer')
lim=plt.axis()
plt.scatter(Xnew[:, 0], Xnew[:, 1], c=ynew, s=20, cmap='summer', alpha=0.1)
plt.axis(lim);

现在,借助以下代码行,无涯教程可以找到第一个和第二个标签的后验概率-

链接:https://www.learnfk.comhttps://www.learnfk.com/python-machine-learning/machine-learning-with-python-classification-algorithms-naive-bayes.html

来源:LearnFk无涯教程网

yprob=model_GNB.predict_proba(Xnew)
yprob[-10:].round(3)
array([[0.998, 0.002],
   [1. , 0. ],
   [0.987, 0.013],
   [1. , 0. ],
   [1. , 0. ],
   [1. , 0. ],
   [1. , 0. ],
   [1. , 0. ],
   [0. , 1. ],
   [0.986, 0.014]])

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Android开发高手课 -〔张绍文〕

性能测试实战30讲 -〔高楼〕

深入浅出云计算 -〔何恺铎〕

To B市场品牌实战课 -〔曹林〕

如何成为学习高手 -〔高冷冷〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

Serverless进阶实战课 -〔静远〕

结构写作力 -〔李忠秋〕

程序员职业规划手册 -〔雪梅〕

好记忆不如烂笔头。留下您的足迹吧 :)