在数据科学中,我们经常需要处理原始数据。主要任务是从训练数据中得出可以推广到未来未见数据的结论。
您是否在日常工作中应用异常值检测?我的意思是:在 训练数据决定 数据点是异常值并丢弃它们。
你做这件事的经验是什么?您对数值数据应用哪些方法。
在数据科学中,我们经常需要处理原始数据。主要任务是从训练数据中得出可以推广到未来未见数据的结论。
您是否在日常工作中应用异常值检测?我的意思是:在 训练数据决定 数据点是异常值并丢弃它们。
你做这件事的经验是什么?您对数值数据应用哪些方法。
您必须考虑异常值的来源。技术故障?那么他们可能可以安全地忽略。但是当你写下你的主要任务是
从训练数据中得出可以推广到未来未见数据的结论
您必须记住,您未来的数据也将包含异常值并适当地处理它们。像树这样的模型通常对那些模型有些鲁棒,而回归可能会变得混乱。有几种行之有效的方法,例如忽略超过 4 个标准差(或与中位数的中位数偏差)的所有内容,或者仅忽略第 n 个顶部和底部百分位数。
但是在某些情况下,异常值不仅仅是侥幸,而且实际上可以告诉您有关您正在处理的问题域的一些信息。如果您从事欺诈检测工作,那么异常值就是您感兴趣的点。如果您致力于优化网络性能,那么未到达的数据包可能是有趣的数据包。
所以我的建议是不要盲目地抛弃原则上的数据,而要始终考虑数据代表什么以及为什么可能存在异常值。
就实际应用而言:
这里有几个:
1)飞机发动机异常检测:输入特征可以是发动机产生的热量、振动强度、燃料消耗等。在这里可以再次发送异常值进行测试,并可以做出进一步的决定。
2)欺诈检测:特征可以是用户在网站上活动的特征。我们可以根据数据对概率进行建模。通过检查小于某个固定阈值的概率来识别异常行为。
3)监控数据中心的计算机:功能可以是内存使用、磁盘访问次数、CPU 负载、网络流量等。此处的异常行为可以帮助预测未来的故障。
假设我们的数据具有概率分布(高斯分布),则完成异常检测。我们可以绘制数据以查看是否是这种情况,如果不是,我们可以使用对数变换使其成为高斯分布。高斯分布指定我们的数据位于这些区域的区域和概率。
例如:替换原始特征 x -> Log(x) 或特征 x -> (x)^4/3 等。
此外,关于决定异常值的阈值,您可以使用它并查看更高的阈值您将拒绝更多条目,这可能是医生试图将癌症患者与许多正常患者隔离而不冒任何风险/机会的情况。同样,这里的异常值并不意味着癌症患者,但绝对值得进行医学检查。如果您将太多正常数据标记为异常值,您可以将其设置为较低的值。
我们有偏斜的数据集,因为我们有比另一种更多的例子。例如,当我们获得飞机发动机数据时,我们可能只有少数坏的数据,大部分是好的数据。建议使用交叉验证数据。F1-Score是评估算法性能的一个很好的指标。
如果您正在处理通常符合正态分布的连续数据,您可以应用 Z 分数作为确定观察值与平均值有多少标准偏差的方法。根据您的目标,您可以丢弃较大的 z 分数。 https://en.wikipedia.org/wiki/Standard_score
箱线图非常适合可视化和识别异常值,尽管箱线图有时可以隐藏有关数据的信息。
这是一个类似对话的链接: 哪些算法或方法可用于从该数据集中检测异常值?