机器学习项目的失败可能由多种因素造成,但两个常见的被忽视的错误做法是数据泄漏和数据处理不一致。这里有3种方法可以避免它们:
- 1. 做探索性数据分析时不要使用测试集。只使用训练集。通过不接触测试集,您可以避免数据泄漏。请记住,如果您将测试数据泄露给模型,它就不能很好地推广到新数据。
- 2. 最初评估模型时,不要在测试数据上评估。您的模型一开始很可能表现不佳,因此不要泄露测试数据,而是在训练集上评估模型,直到它表现良好为止。
- 3. 为避免数据处理不一致,在训练集和测试集之间使用相同的数据处理函数。例如。如果你对训练集中的数值特征进行了归一化,那么你也应该对测试集中的相同特征进行归一化。
例子:
如果您使用一种热编码(hot encoding)技术来处理分类特征,您也应该在相同特征的测试集中使用它。避免不一致数据处理的可靠方法是使用可以在不同数据集之间重用的函数或使用管道。好消息是,我们大部分日常 ML 工具都支持构建数据处理(和建模)管道。