使用 Standardizer 处理异常值?
数据挖掘
机器学习
深度学习
数据挖掘
数据清理
离群值
2022-03-09 16:02:15
3个回答
标准化可能不是最好的选择。
因为它们仍然不会在 -1 和 1 之间有界(如归一化时),而是依赖于分布。我的意思是,如果它们是异常值,它们的标准偏差对于这些值会很大。无论如何,您不应该重新调整这些值来对抗这些异常值。异常值首先不是有问题的,因为它们的值很大,但主要是因为这些值位于不可能/代表未来数据的集群中,您将学习它。
例如,不丢弃它们的一种解决方案是分箱,您说所有标准偏差大于 2 的异常值都应该具有值“X”,例如,X 是大约 99.5% 的分位数。
当您不想删除异常值时,如果它是分类任务,您可以使用逻辑回归,因为我们知道 log reg 由于 sigmoidal 函数对异常值具有鲁棒性。否则,一般来说,您可以使用本地可达性因子值来检查您的数据点是否具有与其他数据点显着不同的该因子值。本地可达性因子并从数据集中删除这些更高价值的数据点。
不,只是如果你标准化你正在考虑异常值,并且如果你使用的敏感模型会受到 KNN 等异常值的影响,那么这样做不是一个好习惯。我建议要么选择距离不敏感模型,要么删除异常值,然后只有你的表现可能会提高。