我正在使用包 e1071 中的 R 和 SVM 进行文本分类。我有大约 30000 个文本文件用于训练,10000 个用于测试。目标是对这些文件进行分层分类。比如我在一级有13个类别,比如体育、文学、政治等,二级有300多个类别。例如,在运动类别下,有子类别,如足球、篮球、橄榄球等。
有两种策略可以达到第 2 级的分类。首先是对第 1 级(13 个类别)中的文件进行分类,然后递归地将文件分类到其自己的子类别中。第二种策略更直接,即我们为级别 2 中的所有类别(超过 300 个)分配不同的标签,然后我们用 SVM 训练模型。
对于第二种策略,虽然我已经使用 SVD 到 doc-term 矩阵,将其维度减少到 30,000 * 10。包 e1071 中的svm函数仍然崩溃,给出错误cannot allocate vector of size 12.4 Gb。
所以我想问各位大师,大量的类别对于 SVM 是否是一个真正的问题?具体来说,就我而言,哪种策略会产生更好的结果并且在实际中更可行?