我正在尝试使用Weka将文档分类分为两类(category1和category2)。
我收集了一套训练集,其中包含属于这两个类别的600份文件,将要分类的文件总数为1,000,000。
因此,要执行分类,我应用StringToWordVector过滤器。我从过滤器中设置了以下内容: - IDF转换 - TF变形 - OutputWordCounts
我想问一些关于这个过程的问题。
1)我应该使用多少个文件作为训练集,以避免过度拟合?
2)应用过滤器后,我得到训练集中的单词列表。我是否必须删除其中的任何一个以在分类器中获得更好的结果,否则它不起任何作用?
3)作为分类方法,我通常会选择naiveBayes,但我得到的结果如下:
-------------------------
Correctly Classified Instances 393 70.0535 %
Incorrectly Classified Instances 168 29.9465 %
Kappa statistic 0.415
Mean absolute error 0.2943
Root mean squared error 0.5117
Relative absolute error 60.9082 %
Root relative squared error 104.1148 %
----------------------------
如果我使用SMO,结果是:
------------------------------
Correctly Classified Instances 418 74.5098 %
Incorrectly Classified Instances 143 25.4902 %
Kappa statistic 0.4742
Mean absolute error 0.2549
Root mean squared error 0.5049
Relative absolute error 52.7508 %
Root relative squared error 102.7203 %
Total Number of Instances 561
------------------------------
那么在文档分类中哪一个是“更好”的分类器? 哪一个更适合小型数据集,就像我拥有的那样? 我已经读过naiveBayes在使用大数据集时效果更好但是如果我增加数据集,它会导致“过度拟合”效果吗? 另外,关于Kappa统计,是否有任何可接受的阈值,或者在这种情况下无关紧要,因为只有两个类别?
对于这篇长篇文章感到抱歉,但我一直试图改进分类结果一周没有成功,尽管我试图获得更适合每个类别的文档。
答案 0 :(得分:1)
1)我应该使用多少文件作为训练集,以便我 避免过度拟合? \
您无需选择训练集的大小,在WEKA中,您只需使用10倍交叉验证。回到这个问题,机器学习算法对过度拟合问题的数据集的影响要大得多。
2)应用过滤器后,我得到了一个单词列表 训练集。我是否必须删除它们以获得更好的结果 在分类器或它不起任何作用? \
绝对是的。但结果是否变得更好是不能承诺的。
3)作为分类方法,我通常选择naiveBayes但是 我得到的结果如下:\
通常,为了定义分类算法是否良好,ROC / AUC / F-measure值始终被视为最重要的指标。您可以在任何机器学习书中学习它们。
答案 1 :(得分:0)
回答你的问题:
the
,he
或and
,具有很小的区别价值,这是改善分类器的常用策略。 Weka的StringToWordVector
允许您选择包含这些停用词的文件,但它也应该有一个带有英语停用词的默认列表。Correctly Classified Instances
)。您可能还想查看(Lib)SVM或LibLinear(如果它们本身不在Weka中,您可能需要安装它们; Weka 3.7.6有一个允许简单安装的包管理器),它可以很好地执行文件分类也是如此。答案 2 :(得分:0)
关于第二个问题 2)应用过滤器后,我得到训练集中的单词列表。我是否必须删除其中的任何一个以在分类器中获得更好的结果,否则它不起任何作用?
我正在构建一个分类器并使用着名的20news组数据集对其进行训练,在没有预处理的情况下进行测试时,结果并不好。因此,我按照以下步骤预处理数据: