1. 程式人生 > >分布式計算 標準差,信度

分布式計算 標準差,信度

再次 需要 執行 .com com 得到 內存 info ask

分布式計算 標準差,信度


當一組數據無法完全加載到內存計算時,那我們就需要進行分布式計算,每臺機器計算部分數據然後合成最後結果。例如典型的詞頻統計案例,但是當最後的結果不能根據每臺機器的結果得出,那麽就要拆分算法了。

==拆分算法的標準:算法公式的粒度一定要能根據分布式的各個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
成員的平方和:12+22+32+42=30

針對(5、6、7) 這個小組:

成員個數: 3
成員之和: 5+6+7=18
成員的平方和:52+62+72=110

拿到這三個指標之後,拿mr來說,我們就可以在每個map中計算這三個指標,最後在reduce中
執行算法

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

在開方就就剛好和mysql 的std計算結果一樣了

來看看mysql 的結果是否一樣

技術分享圖片

得到了標準差,信度再次基礎上加上子集的計算就可以了!

分布式計算 標準差,信度