朴素贝叶斯的工作原理

Posted

技术标签:

【中文标题】朴素贝叶斯的工作原理【英文标题】:How the Naive Bayes works 【发布时间】:2019-06-25 19:29:07 【问题描述】:

我已经阅读了关于朴素贝叶斯的文章,它是一种分类技术算法,可以根据您提供的数据进行预测,但在这个示例中,我无法理解输出 [3,4] 的来源。

如下示例:

#assigning predictor and target variables
x= np.array([[-3,7],[1,5], [1,2], [-2,0], [2,3], [-4,0], [-1,1], [1,1], [-2,2], [2,7], [-4,1], [-2,7]])
Y = np.array([3, 3, 3, 3, 4, 3, 3, 4, 3, 4, 4, 4]

#Create a Gaussian Classifier
model = GaussianNB()

# Train the model using the training sets 
model.fit(x, y)

#Predict Output 
predicted= model.predict([[1,2],[3,4]])
print predicted

Output: ([3,4])

谁能解释在这种情况下 [3,4] 是如何生成的,这是什么意思?

【问题讨论】:

【参考方案1】:

请浏览下面的示例代码。

from sklearn.naive_bayes import GaussianNB
import numpy as np

model = GaussianNB()
#assigning predictor and target variables
x= np.array([[-3,7],[1,5], [1,2], [-2,0], [2,3], [-4,0], [-1,1], [1,1], [-2,2], [2,7], [-4,1], [-2,7]])
Y = np.array([3, 3, 3, 3, 4, 3, 3, 4, 3, 4, 4, 4])
print x

model.fit(x, Y)

#Predict Output 
predicted= model.predict([[1,2],[35,6], [2,6]])
print predicted

输出:

[3 4 4]

这里我们得到了 3 个值。 3对应[1,2],4对应[35,6]等

因此,根据您的样本量,您可以看到获得 3 或 4 的值。因此,根据它为您的测试数据提供 [3,4] 的测试数据。希望这可以澄清。

例如,从您的代码中,我只取前 3 个条目。你可以看到下面的图表。 X_1 和 X_2 是特征向量(输入),Y 是您的输出。该算法根据输入和输出生成一个数学公式。当您提供测试数据时,它使用相同的公式生成输出 (Y)。这就是您得到 [3,4] 的方式。

【讨论】:

4如何对应[35,6]?我不明白这个。我认为您需要更多地解释您是如何为每个元素获得 [3,4,4] 的。可能x是什么,在这种情况下Y是什么,为什么x是小写字母而Y是大写字母? x 负责什么,y 负责什么? 谢谢,我认为知道它更有意义!对于 [35,6] 输入,我们在 Y 中没有任何输出训练,但它预测它为 4。 要预测 [35, 6] 的值,它不一定在训练数据中。你能理解为什么吗?如果是这种情况,您只能对训练集中的那些进行预测,在这种情况下,它不会被称为预测。 明白了,谢谢!

以上是关于朴素贝叶斯的工作原理的主要内容,如果未能解决你的问题,请参考以下文章

朴素贝叶斯

使用高斯朴素贝叶斯的多类分类

基于朴素贝叶斯的wine数据集分类预测-机器学习实验-朴素贝叶斯

朴素贝叶斯概率模型在使用前可以进行特征融合吗

朴素贝叶斯分类器原理

朴素贝叶斯的应用