分布式计算 标准差,信度

分布式计算 标准差,信度


当一组数据无法完全加载到内存计算时,那我们就需要进行分布式计算,每台机器计算部分数据然后合成最后结果。例如典型的词频统计案例,但是当最后的结果不能根据每台机器的结果得出,那么就要拆分算法了。

==拆分算法的标准:算法公式的粒度一定要能根据分布式的各个task处理得出==

拆分标准差:

针对一组数据 (例如:1、2、3、4、5、6、7),我们把他拆分到两台机器来计算
两组数据

A机器计算 (1、2、3、4)

B机器计算 (5、6、7)

首先单组数据需要计算三个指标

针对(1、2、3、4) 这个小组:

成员个数: 4
成员之和: 1+2+3+4=10
成员的平方和:1²+2²+3²+4²=30

针对(5、6、7) 这个小组:

成员个数: 3
成员之和: 5+6+7=18
成员的平方和:5²+6²+7²=110

拿到这三个指标之后,拿mr来说,我们就可以在每个map中计算这三个指标,最后在reduce中
执行算法

((110+30)/(4+3))-((10+18)/(4+3))²

在开方就就刚好和mysql 的std计算结果一样了

来看看mysql 的结果是否一样

得到了标准差,信度再次基础上加上子集的计算就可以了!

猜你喜欢

转载自www.cnblogs.com/qiaoyihang/p/8963804.html
今日推荐