python-3.x - 为什么我的分类器不适用于新数据(未作为数据集的数据)?
问题描述
我的数据集有 copd 文档作为正数据(86)和疟疾(20)+ diarreha(20)+象皮病(20)作为负数据。所以我的数据集中的总文档为 146,其中 86 为正,60 为负。我已经采取训练比例:测试为 3:1.ngram 范围为 (1,1)。我还从特征列表中删除了所有数字特征。我将特征的 tfidf 作为输入。我使用朴素贝叶斯算法进行训练和testing.Accuracy= 89%,Precision= 84%,Recall = 100%。现在,我正在获取新文档以在我的数据集之外进行测试。其中 20 个文档为阳性(copd),20 个文档为阴性(不在我们的数据集中,即不在我们的数据集中的疾病)现在它几乎将所有文档预测为阳性,或者我们可以说精度随着值的增大而降低。我的问题是我在这里做错了什么?为什么我的分类器不适用于新文档?任何类型的帮助将不胜感激。
解决方案
你显然过度拟合了你的训练集。您必须使用正则化来使您的模型也能很好地概括新数据。
你可以选择 L2 norm 或 Dropout 技术来防止过度拟合。
推荐阅读
- reactjs - 在 Office ui 结构 React 中替代具有多行的 TextField
- laravel - 查询返回一个对象而不是数组
- android - Kotlin 协程:为什么我直到最后都看不到日志?
- ssl - 没有为“listen ... ssl”指令定义“ssl_certificate”
- assembly - NASM x86 Assembly 中的删除空格问题
- java - 如何在 Windows 上运行生产者和消费者控制台
- php - declare(strict_types=1) 是否适用于包含的文件?
- confluence - 在 Confluence 中创建具有唯一增量 ID 的页面
- php - 如何在用户帐户中显示订单,Laravel
- java - 没有定义类或注解的 JAXB