我想繪製高斯樸素貝葉斯分類器的決策表面。我似乎在訓練分類器時遇到了一些問題。我對機器學習也很陌生。SciKit學習 - 訓練高斯樸素貝葉斯分類器
首先我生成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])」,它將起作用 – lejlot