朴素贝叶斯的工作原理
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] 的值,它不一定在训练数据中。你能理解为什么吗?如果是这种情况,您只能对训练集中的那些进行预测,在这种情况下,它不会被称为预测。 明白了,谢谢!以上是关于朴素贝叶斯的工作原理的主要内容,如果未能解决你的问题,请参考以下文章