2017-04-06 65 views
0

我正在訓練使用sklearn分類器,我做錯了什麼。在下面的代碼中,我將完全相同的值用於訓練和預測,結果並不相同。這是如何發生的?分類器擬合和預測相同的數據給出不同的結果

text_clf = Pipeline([('vect', CountVectorizer()), 
        ('tfidf', TfidfTransformer()), 
        ('clf', MultinomialNB()), 
]) 
text_clf = text_clf.fit(X, y) 

predicted = text_clf.predict(X) 

print set(np.asarray(y)) == set(predicted) #gives false 

數據X是一個unicode列表和y列表中的數字(1和0)。

回答

2

一般來說,不會,兩者不會相等。除非您使用僅收斂於100%訓練準確性的方法,否則您將得不到完美的擬合。

強制在ML 100%的準確度通常會導致過擬合,導致如此特別適於訓練集的模型,它給出了關於以後的任何(例如,真實世界)輸入性能不可接受的差。

如果你的要求 100%的準確性,那麼機器學習對你的問題是完全錯誤的範例。您需要確定性分類,而不是自適應啓發式。

+0

我這樣做只是爲了嘗試看看它是否工作,但顯然,它不,我不知道爲什麼。我熟悉你所說的話。無論如何謝謝你試圖幫助。 – Nikola

相關問題