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