SciKitlearn训练高斯朴素贝叶斯分类

2024-05-23 22:42:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为高斯朴素贝叶斯分类器绘制决策面。不过,我在训练分类器方面似乎有点问题。我对机器学习也很陌生。在

首先我生成100个随机点,其中一半有不同的坐标和标签。在

for i in range(50):
    point1.append([np.random.randint(50,80),np.random.randint(50,80)])
    point1L.append(1)
for i in range(50):
    point2.append([np.random.randint(10,40),np.random.randint(10,70)])
    point2L.append(0)

然后我训练它。在

^{pr2}$

然后我遇到了一个问题。我这里的分类器似乎无法区分这两点。在

print(clf.predict([np.random.randint(50,80),np.random.randint(50,80)]))
print(clf.predict([np.random.randint(10,40),np.random.randint(10,70)]))

我得到的结果似乎总是:

[0]
[0]

我做错了什么,我该怎么解决?在

分级机如果不从分级机本身判断,我也会从分级机的分界点来判断。在


Tags: in机器for分类器np绘制rangerandom
1条回答
网友
1楼 · 发布于 2024-05-23 22:42:16

fit()方法只能调用一次。您将调用fit方法两次,一次用于point1,另一次用于point2。因此,当您再次为point2调用fit()时,估计器会重置自身并只为point2L训练,即0。这就是为什么你的预测总是0。 首先将point1point2组合成一个新的矩阵(与标签相同),然后在新矩阵上调用fit方法。在

相关问题 更多 >