gpt4 book ai didi

python - Sklearn 朴素贝叶斯分类器,用于处理属于同一类的数据

转载 作者:行者123 更新时间:2023-11-30 09:30:14 25 4
gpt4 key购买 nike

我运行了这个简单的朴素贝叶斯程序:

import numpy as np
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
Y = np.array([1, 1, 1, 2, 2, 2])
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X, Y)
print(clf.predict([[-0.8, -1],[-0.9, -1]]))

我得到的结果是:

[1 1]

[-0.8, -1] 被分类为 1,[-0.9, -1] 被分类为 2。如果我知道我的数据都来自同一个类,即 [[-0.8, -1],[-0.9, -1]] 来自同一个类,scikit 有没有办法-学习朴素贝叶斯分类器将此数据作为一个整体进行分类(并在本例中给出 [1] 作为结果),而不是单独对每个数据点进行分类。

最佳答案

朴素贝叶斯分类器对每个输入进行单独分类(而不是作为一个组)。如果您知道所有输入都属于同一(但未知)类,那么您需要做一些额外的工作才能获得结果。一种选择是从 clf.predict 结果中选择计数最多的类,但如果组中只有两个实例,则可能效果不佳。

另一种选择是调用 predict_proba对于 GaussianNB 分类器,它将返回每个输入的所有类的概率。然后,您可以使用各个概率(例如,您可以将每个类别的概率相加)来决定如何对组进行分类。

您甚至可以结合使用这两种方法 - 使用 predict 并选择计数最高的类,但使用 predict_proba 来打破平局。

关于python - Sklearn 朴素贝叶斯分类器,用于处理属于同一类的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17656418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com