我正在使用收集的一些推文构建一个情感分析程序。我收集的标记数据将通过一个神经网络进行分类,分类为两个类别:正面和负面。
数据仍在标记中。到目前为止,我观察到正面类别的样本数量非常少。
在我的训练集中,正面类别的记录可能只占训练数据集的5%(这种比例也可能反映在总体中)。
这会在最终的“程序”中造成问题吗?数据集的大小约为5000条记录。
回答:
是的,确实可能。需要考虑两点:
- 5000的5%是250。因此,你将尝试基于仅250个样本来建模你的类别数据分布。这对于神经网络来说可能小得多的数量级。因此,你可能需要40倍更多的数据来获得一个有代表性的样本。虽然你可以通过子采样轻松减少多数类别,而不会有破坏结构的重大风险——但没有办法从更少的点中获取“更多结构”(你可以复制点、添加噪声等,但这不会增加结构,这只是增加了假设)。
- 类别不平衡也可能导致收敛到简单的解决方案,比如“总是False”,这种方案的准确率为95%。在这里,你可以尝试调整成本函数,使其对不平衡更具鲁棒性(特别是——@PureW建议的训练分割只是试图改变损失函数,使其对少数类别有更大权重的“黑盒”方法。当你能访问你的分类器损失时,就像在神经网络中,你不应该这样做——而是应该改变成本函数,并保留所有数据)。