2014-08-28 34 views
2

我很想知道是否有內置scikitlearn python模塊中的函數,可以檢索錯誤分類的文檔。使用scikitlearn檢索錯誤分類的文檔

這很簡單我通常通過比較預測矢量和測試矢量來自己編寫它,並從測試文檔數組中檢索文檔。但我問是否有內置的功能,而不是複製我編寫的每個Python代碼中的功能。

+1

如果'clf.predict(X_test)!= y_test'就是你正在尋找的,那麼,你說,這是非常簡單的,因此不會暴露任何分類的成員函數。然而,也許有一些技巧,如果你願意,你可以寫一個「得分」對象來做到這一點。 – eickenberg 2014-08-28 17:48:20

回答

6

如果您有一系列文檔的真實標籤列表y_test,例如, ["ham", "spam", "spam", "ham"]你將其轉換成一個NumPy的陣列,那麼你就可以在一個班輪預測進行比較:

​​

現在misclassified是一個數組索引爲X_test

@eickenberg是對的,這種東西並沒有在scikit-learn中實現,因爲用戶需要熟悉NumPy在幾行代碼中自己完成它。

0

你可以像列表一樣理解錯誤分類。否則,我不知道任何其他方式來做sklearn。

from sklearn.cross_validation import train_test_split 
from sklearn import datasets 
from sklearn import svm 


iris = datasets.load_iris() 
X_iris, y_iris = iris.data, iris.target 
X, y = X_iris[:, :2], y_iris 
X_train, X_test, y_train, y_test = train_test_split(X, y) 

clf = svm.LinearSVC() 
clf.fit(X_train, y_train) 

mis_cls = [train 
      for test, truth, train in 
      zip(X_test, y_test, X_train) 
      if clf.predict(test) != truth]