异常数据剔除

2024-11-30 23:12:49
推荐回答(3个)
回答1:

Hough 变换拟合直线,不过这个是数字图像处理里面比较专业的知识。怕是...

我可以编写程序,来帮你处理该问题,有兴趣可以找我

补充: 我想知道LZ想做什么,简单方法是这样做:

1。对于线性数列,求出所有相邻两树差,得到一个新的数列,然后统计新数列的众数(就是出现最多的那个)得到线性数列的公差。
2。然后假设第一个个数是非异常数字。
3。假设数据不断加公差,看看绝大大多数是不是在原线性数列中,分情况:
4。若是 : 则第一个数以及第一个数+公差与原数列相同的元素均为非异常数据,其他则为异常数据。
5。若不是:则第一个数为异常数列,在假设第2个非异常数据,返回到第3步。一直找到满足条的的数。

注 : 异常数据毕竟是少数,计算次数与线性数列内元素个数正相关。假设个数为n
最小计算次数;2*n
最大计算次数:n*(n-1)
理论平均: n*log(n)

在补充 :

实验数据其实一般用图表,把所有元素对应点放在一张图上,找直线,使最多点落在直线上,不在直线上的数据去掉就可以了

回答2:

很简单,用y除以x,看各组结果是否相同,把偏离最大的那组找出来,它们就是非线性的!

回答3:

取平均值,
再将偏差最大的2个数剔除
再把剩下的2个数值取平均