如何检测二维数组中的异常值检测?

问题描述:

鉴于像数组:如何检测二维数组中的异常值检测?

[ 
    { final_amount: 20.0, shipping_amount: 5 }, 
    { final_amount: 30.0, shipping_amount: 5.5 }, 
    { final_amount: 25.0, shipping_amount: 105.5 }, 
    { final_amount: 325.0, shipping_amount: 125.5 } 
] 

我怎么能检测到

{ final_amount: 25.0, shipping_amount: 105.5 } 

是一个局外人?

较大的final_amount意味着较大的shipping_amount,但是我们在数据集中存在一些错误的条目。

如果我仅考虑shipping_amount(中位数和标准差),它将删除一些有效的条目,因为它没有考虑final_amount。

+0

感谢罗伯特,不知道stats.sx.com。如果你将它添加为答案,我会接受它。 –

解决这类问题的正确方法是建立“正常”数据模型和一个或多个“异常”数据模型。这些中的每一个都是某个类别的p(数据|类别)。应用贝叶斯规则来计算p(类别|数据)并在这些类别中进行一些选择。选择最大的p(类别|数据)类别。这是一个相当开阔的领域,祝你好运,玩得开心。你也可能在stats.stackexchange.com上获得更多的兴趣。