网站建设背景资料,湘潭网站建设 找磐石网络一流,凤岗镇仿做网站,东莞互联网招聘朴素贝叶斯算法是一种基于应用贝叶斯定理的分类技术#xff0c;其中强烈假设所有预测变量彼此独立。简而言之#xff0c;假设是某个类中某个要素的存在独立于同一类中其他任何要素的存在。
在贝叶斯分类中#xff0c;主要的兴趣是找到后验概率#xff0c;即给定某些观…
朴素贝叶斯算法是一种基于应用贝叶斯定理的分类技术其中强烈假设所有预测变量彼此独立。简而言之假设是某个类中某个要素的存在独立于同一类中其他任何要素的存在。
在贝叶斯分类中主要的兴趣是找到后验概率即给定某些观察到的特征的标签的概率。借助贝叶斯定理无涯教程可以将其定量表示为: 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, ymake_blobs(300, 2, centers2, random_state2, cluster_std1.5)
plt.scatter(X[:, 0], X[:, 1], cy, s50, cmapsummer);
接下来对于使用 GaussianNB 模型需要导入并使其对象如下:
from sklearn.naive_bayes import GaussianNB
model_GBNGaussianNB()
model_GNB.fit(X, y);
现在必须进行预测。可以在生成一些新数据之后执行以下操作-
rngnp.random.RandomState(0)
Xnew[-6, -14] [14, 18] * rng.rand(2000, 2)
ynewmodel_GNB.predict(Xnew)
接下来正在绘制新数据以查找其边界-
plt.scatter(X[:, 0], X[:, 1], cy, s50, cmapsummer)
limplt.axis()
plt.scatter(Xnew[:, 0], Xnew[:, 1], cynew, s20, cmapsummer, alpha0.1)
plt.axis(lim);
现在借助以下代码行无涯教程可以找到第一个和第二个标签的后验概率-
yprobmodel_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]]) 分类算法 - 朴素贝叶斯 - 无涯教程网无涯教程网提供朴素贝叶斯算法是一种基于应用贝叶斯定理的分类技术其中强烈假设所有预测变量彼此...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-classification-algorithms-naive-bayes.html