我最近学习了机器学习,作为我的第一个项目,我正在开发一个井字游戏引擎,用于预测在给定的井字游戏位置(或棋盘状态)下的最佳移动。我使用暴力方法生成了所有可能的3×3棋盘位置(不包括已完成和重复的游戏),得到了4520个不同的可能位置。然后我使用MinMax算法来确定每个位置的最佳移动。现在我想用这些数据来训练一个模型,以达到最高的准确性。我想到的是:
既然我已经有了所有可能的位置,为什么不使用整个数据集来训练模型(这样就不会有测试集),并使用复杂的
神经网络
来过拟合数据,达到100%的准确率,这样在实际使用中也会是100%准确,因为它不会遇到任何新的位置。
问题是,我注意到人们总是把过拟合视为一件坏事,所以我的问题是:这是个好做法吗?为什么好或不好?
回答:
当你希望模型能泛化到新数据时,过拟合是一个问题。在你的情况下没有新数据,所以过拟合不是问题。
但是,机器学习通常不是这样使用的,在大多数情况下,泛化才是重点,这就是为什么我们要尽量避免过拟合。