没有一种完善的方法来估计您需要的数据点数量。它更像是一门艺术而不是一门科学。随着您获得更多经验,您将沿途学习一些常识课程(事后看来)。例如,您永远不应该拥有比数据点更多的参数;如果您正在构建随机森林,则树的数量不应超过数据点。如果你在做深度学习,你的神经元不应该多于数据点(这些是极端的例子)。根据经验,尽量避免拥有比数据点多 10 倍的特征。300 个数据点非常小,因此您可能应该将自己限制在线性模型中。
正如霍布斯所提到的,交叉验证和/或保留集是判断模型准备情况的正确方法,而与数据点与特征的比率无关。如果训练集上的误差比测试/验证集上的误差好 10%,那么您可能过度拟合并且您的模型不适合生产。10% 的门槛在很大程度上是一个经验法则。
另外值得一提的是,一旦您对自己的模型适合生产感到满意,就永远不要部署它然后就走开。如果您的模型有价值,您应该进行持续的后期制作监控。在现实世界中,随着模型训练环境的发展,模型的性能将不可避免地随着时间的推移而下降(无论模型构建时它有多强大/准确)。这对于金融和保险行业来说当然是正确的。
如果您的模型的性能比您预期的差得多,也可以使用生产监控来拔掉插头。如果您对模型的潜在稳定性有非常低的看法,请静默部署它(不要让预测进入下游系统)并衡量如果您假设部署它,您的模型会如何做。
最后一条建议:当您对新文档进行预测时,您几乎总是会遇到您在训练集中没有考虑到的单词。您应该找到一种方法将这种意识融入您的模型中。例如,您可以选择仅使用关键字作为预测变量,也可以为新词创建指示变量。无论哪种方式,您都不应该期望词汇量保持不变。