【问题标题】:How to improve performance of SMO classifier in weka?如何提高 Weka 中 SMO 分类器的性能?
【发布时间】:2012-08-23 21:06:55
【问题描述】:

我正在使用 weka SMO 分类器对文档进行分类。smo 有许多可用的参数,例如内核、容差等。我使用不同的参数进行了测试,但在大型数据集上我没有得到很好的结果。

对于超过 90 个类别,只有 20% 的文档得到正确分类。

请任何人告诉我在 SMO 中获得最高性能的最佳参数集。

【问题讨论】:

  • 没有通用的最佳参数设置。这完全取决于您的数据和要求。为了让我们给出任何答案,我们需要您使用 which data 准确指定 您想要什么
  • 您尝试过线性支持向量机等更简单的方法吗?你有什么特点?
  • 除了 SlimJim 的问题,你的文件是什么,类别是什么?
  • Html 格式文档和咖啡、棉花、大米等 90 多个类别,

标签: java machine-learning classification smo


【解决方案1】:

这里的主要问题不是分类本身,而是选择合适的特征。使用原始 HTML 会导致非常大的噪音,进而导致分类结果非常差。因此,要获得好的结果,请执行以下操作:

  1. 提取相关文本。不仅要删除 HTML 标签,还要准确获取描述项目的文本。
  2. 创建关键词词典。例如。卡布奇诺、拿铁、白米饭等。
  3. 使用stemminglemmatization 获取单词的基本形式并避免将例如“cotton”和“cottons”视为2 个不同的单词。
  4. 根据文本制作特征向量。属性(特征名称)应该是字典中的所有单词。值可能是:二进制(如果单词出现在文本中,则为 1,否则为 0)、整数(文本中出现问题的单词的次数)、tf-idf(如果您的文本长度非常不同,则使用此值)等。
  5. 只有在完成所有这些步骤后,您才能使用 classifer

很可能分类器类型在这里不会发挥重要作用:无论使用何种分类技术,基于字典的特征通常都会产生非常准确的结果。您可以使用 SVM (SMO)、朴素贝叶斯、ANN 甚至 kNN。更复杂的方法包括创建类别层次结构,例如,类别“咖啡”包含在类别“饮料”中,而类别“饮料”又是类别“食物”的一部分。

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 2015-08-05
    • 2014-03-28
    • 2014-05-31
    • 2020-05-03
    • 1970-01-01
    • 2016-09-15
    • 2015-07-07
    • 2014-07-03
    相关资源
    最近更新 更多