我正在开发一个 NLP 项目,希望使用 MaxEnt 将文本分类为 20 个不同类别之一。我正在根据手写的管理数据手动创建训练、验证和测试集。
我想确定训练集中的类所需的样本大小以及验证/测试集的适当大小。
在现实世界中,这 20 种结果是不平衡的。但我正在考虑创建一个平衡的训练集来帮助构建模型。
所以我有两个问题:
我应该如何确定训练集中每个类别的适当样本量?
验证/测试集是否应该不平衡,以反射(reflect)模型在面对现实世界数据时可能遇到的条件?
最佳答案
为了确定测试集的样本大小,您可以使用 Hoeffding 不等式。
令E为正容差值,N为数据集的样本大小。
然后我们可以计算 Hoeffding 不等式,p = 1 - ( 2 * EXP( -2 * ( E^2 ) * N ))。
令 E = 0.05 (±5%) 且 N = 750,则 p = 0.9530。这意味着您的(样本内)测试误差与样本外的偏差不会超过 5%,确定性为 95.3%。
对于训练集和验证集的样本大小,有一个既定的惯例来分割数据:训练各占 50%,验证和测试各占 25%。这些集合的最佳大小在很大程度上取决于训练集和数据中的噪声量。有关更多信息,请参阅“统计学习的要素”中的“模型评估和选择”。
至于您关于不平衡数据集的其他问题,请查看此线程:https://stats.stackexchange.com/questions/6254/balanced-sampling-for-network-training
关于machine-learning - 大型多类 NLP 分类的数据和样本量不平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014235/