我正在处理多类文本分类问题。我已经建立了相同的梯度提升模型。
关于数据集:
数据集有两个列:'test_name;并"描述"
test_name列中有六个标签及其相应的描述。列。
我对问题的方法
数据准备
-
为描述创建一个单词向量。
-
使用vector一词构建语料库。
-
预处理任务,例如删除号码,whitespace,stopwords和转换为较低的情况。
-
构建文档术语矩阵(DTM(。
-
从上面的DTM中删除稀疏的单词。
-
上面的步骤导致计数频率矩阵,显示每个单词的coressponding列中的频率。
-
二进制实例矩阵的变形计数频率矩阵,该矩阵在文档中显示为0或1,1的单词出现,用于缺失。
-
使用转换后的DTM附加原始注释数据集的标签列。标签列有6个标签。
模型构建
使用H2O软件包,构建GBM型号。
获得的结果
四个类标签分类良好,但其余两个分类不好。
以下是输出:
Extract training frame with `h2o.getFrame("train")`
MSE: (Extract with `h2o.mse`) 0.1197392
RMSE: (Extract with `h2o.rmse`) 0.3460335
Logloss: (Extract with `h2o.logloss`) 0.3245868
Mean Per-Class Error: 0.3791268
Confusion Matrix: Extract with `h2o.confusionMatrix(<model>,train = TRUE)`)
Body Fluid Analysis = 401 / 2,759
Cytology Test = 182 / 1,087
Diagnostic Imaging = 117 / 3,907
Doctors Advice = 32 / 752
Organ Function Test = 461 / 463
Patient Related = 101 / 113
Totals = 1,294 / 9,081
器官功能测试和患者相关的错误分类错误相对较高。我该如何解决?
您可以做一些快速的事情来改进这一点:
- 查看验证集中的性能指标,包括混淆矩阵
- 也许尝试使用超参数调整以提高任务的性能(使用
h2o.grid
:http://docs.h2o.ai/h2o/h2o/latest-stable/h2o-docs/grid-search.html( - 考虑使用H2O.Word2Vec进行功能生成(文档:https://github.com/h2oai/h2o-3/blob/blob/master/h2o-r/demos/rdemo.word2vec.craigslistjobtitles.r and exampe:htttps:htttps:htttps:htttps:htttps:htttps:htttps:htttps:htttps:htttps:htttps:://github.com/h2oai/h2o-3/blob/master/h2o-r/demos/rdemo.word2vec.craigslistjobtitles.r(
如果您提供了更多详细信息和一个工作示例,可以做更多的事情来帮助您。