我正在尝试使用 Weka 将文档分类为两个类别(类别 1 和类别 2)。
我收集了一个训练集,其中包含属于这两个类别的 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 统计,是否有任何可接受的阈值,或者在这种情况下并不重要,因为只有两个类别?
很抱歉这篇长文,但我已经尝试了一周来改进分类结果,但没有成功,尽管我试图获得更适合每个类别的文档。