处理质量有问题的训练集

数据挖掘 数据清理 预处理
2021-10-10 17:31:57

我过去读过的大部分材料通常都假设训练集是完美无缺的。然而,我所得到的似乎并非如此。打算发送到训练集中的数据通常是有问题的(我什至不知道如何开始区分好坏数据)。为了提高数据的有效性,我花费了更多的时间来尝试预处理文件,而不是实际构建原型。

我只转储了声称更好的部分数据。仍然有来自其他来源的数据来补充第一组训练数据中缺失的部分。考虑到数据量,我几乎不可能在它们上花费太多时间。

所以问题是,人们如何处理现实生活中非常可怕、不一致的数据(假设我正在处理地址,由于糟糕的城市规划或缺乏明确的指示,人们经常写错误的邮政编码,拼写错误的社区名称,加上数据被excel“自动更正”,使得“1-2”变成“1-Feb”等等)?具体来说,在给定训练集(和交叉验证集)的质量有问题的情况下,如何确保训练分类器的质量?

2个回答

欢迎来到数据科学的真实世界。在这里,数据集并不像您在在线学习这些课程/教程时想象的那么干净。那些是超级抛光和精致的。但是,现实世界的数据并非如此。

进行清理和擦洗的步骤称为数据预处理步骤。

因此,除了@jknappen 的出色答案之外,还有一些不错的数据清理技术:

  1. 消除零方差列/预测变量:这些列并不重要,它们会导致模型和拟合崩溃和泄漏错误。因此,消除它们将是完全有意义的。
  2. 相关预测变量:降低预测变量之间的相关程度将是预处理过程中非常好的一步。
  3. 缩放:您必须知道为什么缩放在预处理过程中很重要。
  4. 预测器转换

来自 Kaggle 论坛的一个很好的参考,其中讨论了数据集的预处理和清理。

你可以使用半监督学习的技术,你有一个小的干净的训练集和一些脏数据。您可以通过判断其他数据的好坏来扩展您的数据库,并将“最佳”数据点合并到您的训练集中。