我正在做一个 NLP 项目,我希望使用 MaxEnt 将文本分类为 20 个不同的类之一。我正在根据手写的管理数据手动创建训练、验证和测试集。
我想确定训练集中的类所需的样本量以及验证/测试集的适当大小。
在现实世界中,这 20 个结果是不平衡的。但我正在考虑创建一个平衡的训练集来帮助构建模型。
所以我有两个问题:
我应该如何确定训练集中每个类别的适当样本量?
验证/测试集是否应该不平衡以反映模型在面对现实世界数据时可能遇到的情况?
我正在做一个 NLP 项目,我希望使用 MaxEnt 将文本分类为 20 个不同的类之一。我正在根据手写的管理数据手动创建训练、验证和测试集。
我想确定训练集中的类所需的样本量以及验证/测试集的适当大小。
在现实世界中,这 20 个结果是不平衡的。但我正在考虑创建一个平衡的训练集来帮助构建模型。
所以我有两个问题:
我应该如何确定训练集中每个类别的适当样本量?
验证/测试集是否应该不平衡以反映模型在面对现实世界数据时可能遇到的情况?
为了确定测试集的样本量,您可以使用 Hoeffding 不等式。
令E为正容差值,N为数据集的样本量。
然后我们可以计算霍夫丁不等式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