python - 如何有效地对多标签分类问题的记录进行分类?
问题描述
我有大约 11000 条文本记录的分类问题,其中起始 3000 条记录被分类(标记)为 4 个不平衡的类别,如下所示:{类别 1:343,类别 2:1494,类别 3:1069,类别 4:177 }
我对这 3000 条文本记录执行了以下任务,如下所示:
- 对数据进行标记,删除停用词,并对文本进行词形还原,并使用词袋模型从中提取 100 个重复率最高的词。
- 使用 spaCy 提取了一些可能对分析有帮助的其他特征。
- 标准化数据,使所有特征都在同一尺度上。
- 将数据集分为训练集 (75%) 和测试集 (25%)。
- 使用了各种算法,如逻辑回归、SVM、决策树、神经网络等,并比较了它们的分数(准确率、Kappa 分数、F1 分数、精度、召回率)。在所有这些随机森林中,结果证明在这种特定类型的数据上是最好的。
接下来,我想使用这个先前训练的随机森林分类器对所有其他 8000 条记录进行分类。
现在,我应该使用所有 3000 条记录重新训练分类器,然后预测新记录,还是应该使用仅在前 3000 条记录的 75% 上训练的模型直接预测记录?
注意:我也尝试过使用 SMOTE 对不平衡的类进行采样。但是,在执行 SMOTE 之后,当我尝试预测新记录的结果时,该模型会高度过度预测记录,以支持实际上较少的类(即类别 1 和类别 4)。
解决方案
推荐阅读
- azure - Azure AppService 从容器注册表标签选择中持续部署
- sql - 如何在 BigQuery 中查询结构,其中两个键:值对很重要
- javascript - 如何在库中使用 Angular 应用程序库
- c++ - 为什么 range::basic_istream_view::begin() 没有被缓存?
- javascript - 如何使用 javaScript 和 Razor 在 fullCalendar 上选择日期后返回视图
- pytorch - 如何检测pytorch中的内存泄漏?
- java - 如何解决这个新的 Firebase 身份验证错误?
- sql - VARCHAR 为太平洋标准时间 2013 年 1 月 30 日 09:20:00。迄今为止在 SQL 中的隐蔽 Varchar
- python - 不确定如何纠正这些错误 python chatbot
- java - 如何对 Android OTP Firebase 重新进行身份验证?