【问题标题】:Multi-label classification using SVM for text data使用 SVM 对文本数据进行多标签分类
【发布时间】:2018-10-02 09:58:20
【问题描述】:

我有一个 Excel 文件中的数据,我需要使用它来使用 SVM 执行多标签分类。它有两列,如下所示。 'tweet' - A,B,C,D,E,F,G 和 'category' = X,Y,Z

推文类别

乙是

CZ

D X,Y

Y,Z

F X,Y,Z

G X,Z

给定一条推文,我想训练我的模型来预测它所属的类别。推文和类别都是文本。我正在尝试使用 Weka 的 LibSVM 分类器进行分类,因为我阅读它进行多标签分类。我将 csv 文件转换为 arff 文件并将其加载到 Weka 中。然后我运行了“LibSVM”分类器。但是,我得到的结果很差,如下所示。知道我做错了什么吗? “LibSVM”甚至可以进行多标签文本分类吗?

正确分类的实例 82 25.9494 %

错误分类的实例 234 74.0506 %

Kappa 统计量 0

平均绝对误差 0.0423

均方根误差 0.2057

相对绝对误差 89.9823 %

相对平方根误差 134.3377 %

实例总数 316

【问题讨论】:

    标签: machine-learning svm weka libsvm multilabel-classification


    【解决方案1】:

    SVM 绝对可以用于多类分类。 我以前没有使用过 Weka LibSV,但如果你还没有使用过,则需要在输入文本进行任何分类之前进行一些数据清理。 清理的类型还取决于您的分类任务,但您可以查看以下在实践中用于文本分析的技术:

    1) 从文本中删除 twitter 句柄

    2) 删除停用词或您确定不会影响分类的词。也许您只能保留代词并删除任何其他词。您可以使用 POS 标记来执行此任务。更多信息here

    3) 删除标点符号

    4) 使用 n-gram 从文本中获取上下文含义。 This 网站对它的工作原理有一些很好的解释。从本质上讲,这意味着您会将一系列单词视为一个特征,而不是将单个单词用作模型中的数据点。请注意,这可能会影响模型在训练时占用的内存量。

    5) 删除数据集中出现太频繁或不太频繁出现的词。

    6) 在您的案例中平衡您的课程或类别。这意味着在训练模型之前,请确保训练数据具有相似数量的 X、Y 和 Z 类别。您的数据可能有很多分类为 X 和 Y 的推文,但在您的测试集中,您有大部分映射到 Z 类别的推文。

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 2013-07-16
      • 2020-09-02
      • 2018-05-09
      • 2017-02-24
      • 2015-07-05
      • 2014-06-03
      • 2016-07-31
      • 2018-01-14
      相关资源
      最近更新 更多