【问题标题】:How the Naive Bayes works朴素贝叶斯的工作原理
【发布时间】:2025-12-13 03:50:01
【问题描述】:

我已经阅读了关于朴素贝叶斯的文章,它是一种分类技术算法,可以根据您提供的数据进行预测,但在这个示例中,我无法理解输出 [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] 是如何生成的,这是什么意思?

【问题讨论】:

    标签: python scikit-learn statistics naivebayes


    【解决方案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] 的值,它不一定在训练数据中。你能理解为什么吗?如果是这种情况,您只能对训练集中的那些进行预测,在这种情况下,它不会被称为预测。
    • 明白了,谢谢!