我正在从网页文本数据抓取的不平衡数据集,并且手动将其分类为肯定类,而另一个否定类可以包含任何类型的文本数据,我已将其标记为否定。 查看数据集后,很明显,负样本大约少得多。在6000中 1200 。
负= 1200
正值= 4800
最初,使用不平衡的端口词干数据集,该模型以较高的准确度偏向多数类,在看不见的数据中表现最差。
所以我选择了 1200负值和1200正值并使它保持平衡。
我实现了一个4层的64个节点的密集模型, 使用Keras进行0.5的正则化,能够达到60%的精度 在交叉验证中,而火车的准确性高达> 95%。
看着val_acc
和acc
,我觉得在大约20个时期后完全过度拟合。除此之外,由于平衡数据集中的数据行数较少,因此无法一概而论。
答案 0 :(得分:4)
首先,您确定在您认为否定的6000个分类中没有正面分类吗?倒入垃圾,确保这里不是这种情况。
按照顺序我将解决问题。
确保您的数据表示正确。如果您要处理文本数据,则应使用pretrained word2vec和tensorflow中的tensorflow hub之类的词向量(您可以在此处找到{{3}这样的更高级的词嵌入方法) }。
获取更多示例-该示例通常应该产生最佳结果(如果执行上述步骤),但是会花费时间。
怀疑它,用于离群值检测。 7200中的1200个数据点不应视为异常值。此外,它可能与否定类共享许多功能,并且您无法利用当前拥有的标签数据。
如果您仍然想尝试,可以在sklearn Here中实现。