据我所知,当我们处理“大数据”时。我们处理超过 10 年的客户数据是很常见的。质量问题总是存在的。
我在想什么,我们应该在多大程度上处理数据质量问题?一个健壮的算法应该能容忍数据质量问题,但如果我们做更好的数据清理工作,我们就会自信地得到结果。
那么如何平衡呢?
有人请给一些想法!
谢谢。
据我所知,当我们处理“大数据”时。我们处理超过 10 年的客户数据是很常见的。质量问题总是存在的。
我在想什么,我们应该在多大程度上处理数据质量问题?一个健壮的算法应该能容忍数据质量问题,但如果我们做更好的数据清理工作,我们就会自信地得到结果。
那么如何平衡呢?
有人请给一些想法!
谢谢。
这是一个非常依赖于相关数据的问题。假设你可以在合理的时间内训练你的模型,我会首先完全不清理数据,看看你的模型表现如何,然后稍微清理一下并重做实验等等。这是因为可能会过度清理您的数据,从根本上消除对您的建模实际有用的数据变化。您应用的清洁量是模型中的另一个元变量。
这一切都取决于模型的需求和预算。第一个清洁步骤通常会显着提高性能。一般来说,您采取的步骤越多,改进的速度就越慢。如果您是为自己做某事,请在某个时候停止;如果您是为别人做某事,请询问他们想要什么以及愿意为此付出多少。它类似于 80/20 规则,即总工作的前 20% 将有助于 80% 的性能。
另一方面,你关于健壮算法的陈述应该容忍数据质量,你必须小心这一点。如果您的数据中存在偏差(例如缺失值不是随机的),那么无论您的算法有多稳健,它们都无法正确学习。花时间使用领域知识来正确解决这个问题会有很大帮助。
我会说尽可能多地清洁。“垃圾进,垃圾出”这句话的出现是有原因的。
缺失的值、不同的定义、可疑的信息……都必须在提取到任何模型之前进行清理。
当然,即使没有所有这些,模型也会产生一些东西,但它很可能不是最优的。
数据清理可能是一个真正的痛苦,也可以很容易地让你远离核心任务。然而,它是关键方面之一,因此不能掉以轻心。
我相信你有正确的想法,因为你提到你正在寻找balance
。我一直认为数据清洗是一种边缘交易。超过某个点,就不值得花时间了。
正如Jan van所说,这完全取决于您的需求。如果您的模型可能对某些功能非常敏感,那么最好认真地清理它们。如果您正在寻找更广泛的见解,那么即使是对重要功能的一般清理也可以工作。诀窍是真正了解数据集的经验和/或知识可能带来的临界点。
我的团队经常采用这种方法,并且到目前为止一直有效。
1. Once you know what model fits your problem, throw in a feature with random values.
2. Model your data set with minimal / basic cleaning.
3. Plot or tabulate accuracy for all features.
4. Drop all features that perform equal or worse than the random feature.
5. Some times depending on the accuracy even drop features that perform slightly higher than random.
使用它,我们基本上能够摆脱不必要的功能,这些功能会占用整理工作。
洗涤漂洗重复。