【问题标题】:text classification methods? SVM and decision tree文本分类方法?支持向量机和决策树
【发布时间】:2013-06-29 08:55:16
【问题描述】:

我有一个训练集,我想使用一种分类方法根据我的训练集对其他文档进行分类。我的文档类型是新闻,类别是体育、政治、经济等。

我完全了解朴素贝叶斯和KNN,但是SVM和决策树很模糊,我不知道我是否可以自己实现这种方法?或者有使用这种方法的应用程序?

我可以用这种方式对文档进行分类的最佳方法是什么?

谢谢!

【问题讨论】:

    标签: classification svm


    【解决方案1】:

    线性支持向量机是文本分类问题(与逻辑回归一起)的顶级算法之一。决策树在如此高维的特征空间中受到严重影响。

    Pegasos algorithm 是最简单的线性 SVM 算法之一,并且非常有效。

    编辑:多项朴素贝叶斯也适用于文本数据,但通常不如线性 SVM。 kNN 可以正常工作,但它是一个已经很慢的算法,并且从未在文本问题的准确性图表中名列前茅。

    【讨论】:

    • KNN 和朴素贝叶斯呢?
    • 是的,我想知道哪种方法最适合我的问题。我的预定义类少于 10 个。
    • 这不是羞辱的意思。它的意思是要明白这一点。很多人滥用/使用 Stackoverflow 作为拐杖。你需要接受你所拥有的并超越它。将其用作帮助您学习的工具。
    • 我想对 pegasos 算法竖起大拇指,它经常被忽视,但它确实很容易实现,是线性 SVM 的一个非常不错的替代方案。
    【解决方案2】:

    如果你熟悉 Python,可以考虑NLTKscikit-learn。前者专用于 NLP,而后者是一个更全面的机器学习包(但它有大量的文本处理模块)。两者都是开源的,并且在 SO 上有很大的社区支持。

    【讨论】:

      【解决方案3】:
      • 朴素贝叶斯

      虽然这是最简单的算法,而且一切都被认为是独立的,但在实际的文本分类案例中,这种方法效果很好。我肯定会先尝试这个算法。

      • KNN

      KNN 用于聚类而不是分类。我认为您误解了聚类和分类的概念。

      • 支持向量机

      SVM 具有 SVC(分类)和 SVR(回归)算法来进行类分类和预测。它有时效果很好,但根据我的经验,它在文本分类方面的性能很差,因为它对好的分词器(过滤器)有很高的要求。但是数据集的字典总是有脏标记。准确率真的很差。

      • 随机森林(决策树)

      我从未尝试过这种方法进行文本分类。因为我认为决策树需要几个关键节点,而文本分类很难找到“几个关键标记”,而随机森林对高稀疏维度不好。

      仅供参考

      这些都是我的经验,但对于您的情况,您没有更好的方法来决定使用哪种方法,只能尝试每种算法以适合您的模型。

      Apache 的 Mahout 是用于机器学习算法的出色工具。它集成了三个方面的算法:推荐、聚类和分类。你可以试试这个库。但是你必须学习一些关于 Hadoop 的基础知识。

      对于机器学习,weka 是一个集成了许多算法的体验软件工具包。

      【讨论】:

      • -1。 SVM 是文本分类的顶级技术之一,大量关于该主题的出版物证明了这一点。您应该使用 SVC 进行分类,而不是 SVR
      • 从我使用SVM进行文本分类的经验来看,准确率总是不好。我认为这与您使用的文本数据有关。另外,感谢您指出错误。
      猜你喜欢
      • 2011-07-01
      • 2013-08-31
      • 1970-01-01
      • 2018-12-12
      • 2017-01-27
      • 2011-03-08
      • 2012-03-18
      • 2018-06-15
      • 2015-02-16
      相关资源
      最近更新 更多