采集数据不稳定时,为每一条数据的设置采集累计次数,针对所有数据的采集次数 使用ZScore算法。
最大可能的补偿数据。针对通过算法补偿的数据只更新时间,而不更新累计采集次数 。
DescriptiveStatistics stats = new DescriptiveStatistics(data);
double mean = stats.getMean(); // 均值
double stdDev = stats.getStandardDeviation(); // 标准差
double[] dataDis = DoubleStream.of(data).distinct().toArray(); //去重
for (double datum : dataDis) {
if(datum < mean){ //必须小于均值
double zScore = calculateZScore(datum, mean, stdDev);
if (zScore <= 0) { //表示可能已经不在数据
//剔除
}
}
}
private static double calculateZScore(double value, double mean, double stdDev) {
return (value - mean) / stdDev;
}