我有一些离群值的数据。但是,我的数据具有方向性,并且在寻找异常值时需要考虑一些趋势。但是,离群值并不是简单的是或否答案。我唯一能说的是,数据点离趋势越远,可能性就越大,这是我不希望在数据中包含的异常值。
考虑到看台偏差,线性回归以及我正在查看的数据块之类的内容完全取决于上下文,因此我不知道要确定某个异常值与否的静态函数。
我可以使用各种技术选择好的离群值,但是问题是,只要摆脱掉离群值,就使用从中选取离群值的数据的上下文。
我知道,当您为NN准备数据时,必须始终以完全相同的方式准备数据。即,它经历一组静态过程/功能。用于选择离群值的技术需要上下文和上下文更改,因此功能也会更改。我不确定选择异常值的方式是否足以引发模型的完整性。
如果是这样,是否有任何好的静态方法来选择异常值?
答案 0 :(得分:0)
选择异常值的独立于模型的方式是基于误差的分布。归结为:
消除的阈值取决于问题和度量。一种消除异常值的方法是在残差上计算z分数(减去均值并除以残差的标准偏差),然后删除绝对值大于定义阈值(等于与均值之间的标准偏差(在这些点处识别为离群值)。
https://en.wikipedia.org/wiki/Standard_score
这是一种通用的,与模型无关的方法,该方法假定残差是正态分布的(或者至少可以基于相对误差合理地识别异常值)。
如果对残差的分布有其他假设,则可以应用其他概率标准(例如,对残差进行分布拟合,然后对每个点应用概率阈值)。但是,这涉及的更多,并且如果您对残差分布的特征没有先验的看法(除了“大的误差可能是离群值”之外),那么z得分是可行的方法。
前面的内容讨论了如何识别异常值,但是没有讨论是否应该。这是一个与应用程序有关的问题。如果离群值不能提供您要建模的行为的信息,则可以将其从训练中删除。但是,如果您希望模型预测包括异常值在内的平均(或其他优化指标)行为,则应保留它们。