我有 3.25 年的基于时间的数据,我正在使用 scikit-learn 的 RandomForestClassifier 尝试对进来的实时数据进行分类。我的数据集大约有 75,000 行和 1,100 列,我的训练/测试拆分是前 3 年用于火车(66,000 行),过去 0.25 年(3 个月或 9,000 行)用于测试。
由于每次训练时都会存在可变性,因此我并不总是看到对测试数据进行分类的精确度……但有时我会看到。因此,我尝试做的是一遍又一遍地重新训练分类器,直到我确实看到对测试数据进行分类的精度很高,然后将该版本保存到磁盘中,以便在新数据进入时用于实时分类。
有人可能会说这会使模型过度拟合测试数据......这可能是真的,但我已经决定,由于训练中的随机性,在第一次迭代和第 100 次迭代中找到一个好的拟合没有区别,因为发生良好拟合的迭代完全是偶然发生的。因此,我决心继续重新训练,直到找到合适的人选。
我所看到的是,我可以找到一个适合在整个 3 个月的测试期间具有良好/稳定精度的拟合,但是当我使用该模型对第 4 个月的实时数据进行分类时,它不是稳定,精度差很多。
问题 1:一个模型怎么可能连续 3 个月具有出色/稳定的精度,但在第 4 个月却陷入困境?
问题 2:如何更改或增强我的设置或流程以实现实时数据的分类精度稳定性?