我为多类文本分类建立了一个随机森林。该模型返回的准确度为 75%。有 6 个标签,但是在 6 个类别中,只有 3 个被分类,其余的没有分类。如果有人能让我知道出了什么问题,我将不胜感激。
以下是我遵循的步骤。
数据准备
-
创建一个用于描述的单词向量。
-
使用词向量构建语料库。
-
预处理任务,例如删除数字,空格,
停用词和转换为小写。 - 构建文档术语矩阵 (dtm)。
-
从上述 dtm 中删除稀疏单词。
-
上述步骤导致计数频率矩阵显示 每个单词在其核心列中的频率。
-
将计数频率矩阵转换为二进制实例矩阵, 将文档中单词的出现次数显示为 0 或 1, 1 表示在场,0 表示缺席。
- 将原始数据集中的标签列追加 转换后的 DTM。标签列有 6 个标签。
模型构建
- 随机抽取 dtm 并将其拆分为一组并进行测试 设置。
- 构建具有 7 倍交叉验证的随机森林基础模型。
-
检查模型在训练集和测试上的准确性 设置。
我正在分享结果的链接(如果这里允许的话)。
http://rpubs.com/shanmukha_karthik/346007
提高准确性的可能性可能有很多:1.尝试增加实例少于 1000 个的类的大小。2.尝试使用多个删除稀疏术语阈值,例如;0.991,0.99,0.999等,并相应地检查您的准确性3.使用词干,它用来给你单词的词根形式4.创建 dtm 时仅使用术语频率 (TF)。尝试通过简单地添加来使用 tfidf 分数。
tdm <- DocumentTermMatrix(corpus,
control = list(weighting = function(x) weightTfIdf(x, normalize = FALSE),stopwords = TRUE))
5.尝试使用另一个软件包,例如; 从MLR使用游侠来训练随机森林。
我希望它对你有用。