如何提高Weka中SMO分类器的性能?

我在使用Weka的SMO分类器对文档进行分类。SMO有很多参数可供选择,比如Kernel、容忍度等。我尝试了不同的参数设置,但在大数据集上未能获得理想的结果。

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

请问有人能告诉我最佳的参数设置,以在SMO中获得最高的性能吗?


回答:

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

  1. 提取相关文本。不仅要删除HTML标签,还要准确获取描述项目的文本。
  2. 创建关键词词典。例如,卡布奇诺、拿铁、白米饭等。
  3. 使用词干提取词形还原来获取词的基本形式,避免将例如“棉花”和“棉花们”视为两个不同的词。
  4. 从文本中创建特征向量。属性(特征名称)应包括词典中的所有词。值可以是:二进制(如果词在文本中出现则为1,否则为0)、整数(文本中该词出现的次数)、tf-idf(如果你的文本长度差异很大,请使用此方法)以及其他方法。
  5. 只有在完成所有这些步骤后,你才可以使用分类器

分类器的类型在这里可能不会起到很大的作用:基于词典的特征通常会带来相当准确的结果,无论使用哪种分类技术。你可以使用SVM(SMO)、朴素贝叶斯、人工神经网络甚至k近邻。更复杂的方法包括创建类别层次结构,例如,将“咖啡”类别包含在“饮料”类别中,而“饮料”类别又是“食品”类别的一部分。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注