【发布时间】:2017-06-21 21:51:53
【问题描述】:
我正在尝试绘制高斯朴素贝叶斯分类器的决策面。不过,我似乎在训练分类器时遇到了一些问题。我对机器学习也很陌生。
首先我生成 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)
然后我训练它。
clf = GaussianNB()
clf.fit(point1,point1L)
clf.fit(point2, point2L)
然后我遇到了一个问题。我这里的分类器似乎无法区分这两点。
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]
我做错了什么,我该如何解决?
顺便说一句,我还想知道我是否可以直接从分类器本身绘制决策边界,而不是通过比较分类器在每个点的决策。
【问题讨论】:
-
只需将“fit(x,y)”切换为“partial_fit(x,y,[0,1])”即可
标签: python machine-learning scikit-learn