首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示分类错误的实例

显示分类错误的实例
EN

Stack Overflow用户
提问于 2016-01-24 21:37:28
回答 2查看 4.9K关注 0票数 4

我正在使用Scikit-learn构建一个SVM分类器...当运行分类器时..我想通过检查错误分类的实例并试图找出错误分类背后的原因来提高我的分类器的准确性。那么有没有一种方法可以显示错误分类的实例呢?

EN

回答 2

Stack Overflow用户

发布于 2016-01-25 01:15:38

有没有办法显示分类错误的实例?

是的,你需要在这里和那里做一些索引。以下是一个示例,但技术细节将取决于您的分类器的输入和输出。

简单的情况是当输出是单个值时,因此您可以很容易地比较实例是否被正确分类。例如,让我们收集一些数据并训练一个二进制分类器:

代码语言:javascript
运行
复制
>>> from sklearn import cross_validation, datasets, svm
>>> X, y = datasets.make_classification()
>>> X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y)
>>> clf = svm.LinearSVC().fit(X_train, y_train)
>>> y_pred = clf.predict(X_test)

您可以直接比较y_testy_pred,因为输出是单个值。如果你正在训练一个多类模型,那么你将不能进行直接的比较,而是应该逐个类地进行比较。

代码语言:javascript
运行
复制
>>> misclassified_samples = X_test[y_test != y_pred]

如果需要,您还可以将布尔掩码转换为索引。

代码语言:javascript
运行
复制
>>> import numpy as np
>>> np.flatnonzero(y_test != y_pred)
array([ 0, 20, 22])
票数 7
EN

Stack Overflow用户

发布于 2016-01-25 01:19:12

我假设你使用线性支持向量机。如果不是,则过程非常相似。

代码语言:javascript
运行
复制
from sklearn.svm import LinearSVC
X_train=your_train_data
y_train=your_train_lables
X_test=your_test_data #should be around 30% of you your data
y_test=your_test_labels
svm = LinearSVC()
svm.fit(X_train, y_train)
for item, label in zip(X_test, y_test):
    result = svm.predict([item])
    if result != label:
        print "predicted label %s, but true label is %s" % (result, label)

这将打印您的分类器对测试数据所做的每一个错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34976450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档