我有大约 22,000 行训练数据。 我使用 train_test_split 来获取训练和测试数据。 我进行拟合,然后使用各种方法或估计来了解拟合的效果。
然后我想要做的是让拟合模型返回 22,000 行并针对它们进行预测,就好像它以前从未见过它们一样。 然而,当我这样做时,回归器或分类器使每一行都 100% 正确,这是不可能的,因为我所能期望的最好结果是 75% 等。
估算器是否有某种学习数据缓存?如何删除缓存但保留训练好的模型?
谢谢
返回 22,000 行并针对它们进行预测,就好像它以前从未见过它们一样
这是不可能的。它在训练期间看到了它们,并进行了优化以最适合所提供的数据。
没有神奇的缓存,但模型的学习参数是根据训练期间看到的内容推导出来的。最坏的情况是,您的模型过拟合,在训练数据上获得 100% 的准确性,而没有任何泛化,因为它有足够的参数或您的数据集变化太小,并且您的模型刚刚学会准确地再现您的训练数据。
参见关于同一主题的 scikits 示例页面,其中也有一个演示图:
请注意,模型如何拟合到最后一个面板中的数据点,从而准确地学会了表示训练数据,但与实际底层真实模型的有意义的表示相去甚远