Javascript号码数据分组和异常值删除

时间:2016-08-23 23:24:04

标签: javascript arrays outliers

我有一个数组如下:

var myArray = [3, 6, 8, 9, 16, 17, 19, 37]

我需要删除异常值以及将剩余数据分组到出现的任何特殊组中。在这种情况下,37将作为异常值删除,[3, 6, 8, 9]将作为第一个组返回,[16, 17, 19]将作为第二个组返回。

这是第二个例子

var mySecondArray = [80, 90, 100, 200, 280, 281, 287, 500, 510, 520, 800]

200800将作为异常值删除,[80, 90, 100]将是第一组,[280, 281, 287]将是第二组,[500, 510, 520]作为第三组

我已经编写了代码,用于删除外部异常值,使用第一个和第三个四分位数就足够了。换句话说,将800作为异常值从mySecondArray中删除是没有问题的。但它不会删除280作为异常值。

我认为异常值可以定义为成员少于n的组,因此真正的问题是将这些数据划分为适当数量的组的有效方法

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

<强> here

这只是一个简单的实现,它可能不是这组问题的完美解决方案,但它应该足以满足您的示例 - 它也可以超越它。

通过查看数字之间的平均距离,并将该距离与每个数字两侧的距离进行比较,应该可以删除异常值。因此,可以使用相同的度量标准进行分组。

{{1}}