2014-08-28 36 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]