只是出于好奇,在使用训练集训练 SVM 分类器之前减少训练集的维度通常是一个好主意吗?
我有一个文档集合,每个文档都由一个向量表示,该向量具有由 scikit-learn 的 tfidf_transformer 计算的 tf-idf 权重。术语(特征?)的数量接近 60k,而我的训练集包含大约 250 万个文档,它使训练过程永远持续下去。
除了需要永远训练之外,分类也不准确,很可能是由于模型错误。只是为了了解我正在处理的内容,我尝试找到一种以某种方式可视化数据的方法。我使用SVD和scikit-learn将文档矩阵分解为(m,2)矩阵(想尝试其他方法,但它们都在中途崩溃了)。
所以这就是可视化的样子
那么降低维度然后只进行SVM通常是一种好习惯吗?同样在这种情况下,我能做些什么来提高分类器的准确性?我正在尝试使用 sklearn.svm.SVC 和kernel='poly',并且degree=3需要很长时间才能完成。
