【问题标题】:How to extract support vectors from SVM classifier in Python?如何从 Python 中的 SVM 分类器中提取支持向量?
【发布时间】:2014-05-30 04:52:30
【问题描述】:

我在 python 中使用 SciKit 库中的 LinearSVM 对文本数据进行分类,它运行良好。 我的问题是有没有办法找到我的分类器模型的支持向量? 我认为我的数据的支持向量将是一个单词列表!

我需要这个,因为我想为不同的文本数据找到分类器的显着特征。 (不同的文本数据有何不同)

提前致谢。

【问题讨论】:

  • 我不明白你想用支持向量做什么。能否请您改述一下您的问题?
  • @filannim 感谢您的评论,让我们这样说吧:我有三个分类器:朴素贝叶斯、SVM 和线性回归。我用一套火车来训练他们。现在,我想找出对每个分类器都认为重要的前 10 个词汇表(及其相应的权重)。
  • 如果您想在您正在使用的特征中选择最具辨别力的特征,那么您可以使用 RELIEF (en.wikipedia.org/wiki/Relief_(feature_selection))。查看“特征选择算法”以获得一般概述。
  • @filannim 没有在训练之前使用和选择正确的特征是一个问题。我正在寻找每个分类器认为重要的单词列表!例如,如果分类的目标是为文档分配一个主题,那么哪些词在这项任务中起关键作用?

标签: python classification svm text-mining


【解决方案1】:

对于 scikit-learn 中的 SVM 案例,您应该能够通过以下方式访问支持向量:

>>> # get support vectors
>>> clf.support_vectors_
array([[ 0.,  0.],
       [ 1.,  1.]])
>>> # get indices of support vectors
>>> clf.support_ 
array([0, 1]...)
>>> # get number of support vectors for each class
>>> clf.n_support_ 
array([1, 1]...)

[来源:http://scikit-learn.org/stable/modules/svm.html]

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2019-09-19
    • 2014-12-03
    • 2011-11-09
    相关资源
    最近更新 更多