【机器学习】 遇到异常值怎么办?
不管是机器学习还是数据分析,只要你面对一大堆数据,总是免不了出现异常值的可能性,那么遇到这些异常值,我们该如何让处理捏?
异常值
假设下图的数据集中,右上角有一个异常值。假设我们不对异常值做任何的处理,直接进行回归操作,那么最后得到的很有可能就是第一条线的回归方程,虽然我们觉得最后一条线看起来更简单更符合我们的期望
那么异常值是哪里来的呢?
异常值可能是由于传感器的故障,比方说机器因为故障而把某个值设为0;或者打字员在输入的时候打错了,比方说20打成了200。这些异常都是可以忽略的。
但是还有一类异常需要小心,那就是反常事件(Freak Event),比方说有人故意这么操作,或者某个没有注意到的条件改变
如何处理异常值
假如我们拿到的数据是有异常值的,我们不可能手动的一个一个把这些异常值删掉,要想快速处理的话,怎么做呢?
看下面的这些数据,不对异常值进行任何操作的话就是如图绿色线所示的拟合,拟合之后,我们计算所有数据与回归函数的误差,剔除误差最大的,然后再进行拟合,再剔除,如此反复几轮,就可以得到非常好的拟合效果了
所以方法就是:
1.训练
2.去掉最大误差(残差),例如设为去掉10%的最大误差
3.重新训练
4.重复2.3步骤
是不是很简单?
有兴趣实操一下的朋友可以看我的另一篇文章:美国最大欺诈案—对安然事件数据集的分析
你的赞是对作者莫大的支持哦~????
如果你想看其他的关于机器学习的一些知识,可以关注我的知乎专栏,我是一个机器学习小白,初学者总会遇到各种各样的困难,我会从初学者的角度把每一个坑都给你仔仔细细的讲明白咯~