熱線電話:13121318867

登錄
首頁職業發展大數據自下而上:算法和統計學完美的結合
大數據自下而上:算法和統計學完美的結合
2018-05-25
收藏

大數據自下而上:算法和統計學完美的結合

從理論上來說有這樣終極的目標:給定一個可以推理的目標,同時確定固定的計算時間,提供由算法和分析支撐的保證,按小時、分鐘、秒進行計算,推論的質量將會隨著數據的精確性而單調遞增,并且是沒有邊界的無線增長。隨著數據無邊界的增長,遇到很大的麻煩,我們每一代人都需要面對。我們想一次解決,有什么樣的辦法可以推理積累的大量數據?需要花時間解決,這可能需要幾十年才能解決。
    我們看一下目前的進展。其中一個就是自下而上的辦法,將算法原理和統計學的推論完美地結合在一起。這些算法原則上來講,可以放在一個環境當中,我們選一些分治的方法來解決。這些難題,我們聚合起來,聚合的越多,這些錯就越少,更好做一些。然后分開相互之間相互矛盾的數據,包括統計數字,還有計算機科學的數字,可以避免帶來很大的麻煩。然后再回到我們理論上的問題,如何進行權衡,提高我們計算的效率。
    1.大數據引導程序(The bootstrap)
    首先第一個問題,我們叫做大數據的引導程序,我們在伯克利幾年前做過這樣的工作。這個引導程序能夠解決一些非常重要的問題--評價推論的質量。很多有學識的研究者并不太關注推論的質量。輸入數據到一個盒子里面,然后得到一個答案,是9.5.但是多數的決策并不能滿足要求,要知道9.5里面的差錯率多大?如果這個數字超過10的話,就要把肝切掉了,如果是9.5的話還可以。所以,這是真正的9.5嗎?還存在很大的誤差嗎?或者是沒有超過10嗎?如果真正做出真實的決策時,是沒有誤差這個欄的考慮,但是計算機科學家們需要對這個有很深的了解。所以我們要進行工作,能夠在數據庫的社區里面建立一些數據庫,能夠輸入,然后再輸出,同時有一個非常清楚明白的誤差欄。
    現在讓我們進入到另外一個領域,進入到統計學里面怎么樣呢?很有意思的一點就是在非常簡單的事情上,我們抽樣,根據有相關的公式,可以通過這樣的途徑進行了解。比如說我們根據抽樣里面的差異性,加上知道差錯率,如果不講差錯率,有一個中等的情況,比如說10.2,那這個誤差是多少呢?并沒有這樣的公式在里面。我們怎么知道一般情況中存在的差異性?我們有一個通常叫做的程序框架,能夠應對快速擴展的大數據,并且計算誤差率。
    到底推斷的質量如何?我們觀察的數據包括機器的誤差率和基于數據進行參數的預測。我們叫做形成一種參數的預估值。就像一條程序、一個黑匣子,到底有多少的誤差在里面,這是我們所關注的。通過對程序進行計算,了解數據指標情況,如果想做一個理想的統計學家的話,還要對它進行科學的定義。
    所謂的頻率主義者,每一個數據都會要計算中間的情況,還有一些預估估算,不同的數據級進行浮動,你看浮動的范圍就帶來這種所謂的誤差率。從這個定義來說,這個誤差率是什么,誤差率就是指你還需要更多的時間分析這些數據。如果你沒有大量的數據,你不能夠對這些數據進行一次又一次的檢驗,并同時看他們之間的浮動。如果沒有一個數據集的話,就可以一次性去做,看看生成的情況,我們只有一個數據集。
    我們設想一下,如何分析這些問題,解決這些問題,即使只有一個數據集。這些數據來自什么地方,有這樣的一些群體,比如說在我們這里生成一些數據,有一個曲線可以反映出相關的群體。如果是一個一般不存在的東西,上面有一個幻燈片,可以形成一個數據集,兩個數據集,對每個數據集進行計算,你所在意的都是一些數據的預測,然后得到一個公式??梢宰鲇嬎銠C的并擊處理,生成一個數據的處理,每一個計算機可以進入一個預估值,然后可以在估算當中產生一些誤差。然后這個里面我們沒有多個數據級,我們不能這樣去做。我們觀察有一個數據來自這樣的群體,然后這些數據不是列出來的數據,這些數據的分布圖是分布式,可以生成越來越多的數據。這種分布盡管不可以換,但是你可以從中抽樣。我們叫做近似值,基本上是真實的。[page]
    所以說,這是非常微妙、深層的理念,拿過一個數據級生成多個數據級,這個叫做引導程序。1979年的時候拿到的一個大獎,這里其實是非常簡單的理念。盡管1979年還沒有云的語言等,也是可以這樣做。你可以用于任何的查詢上,為什么不把所有的數據庫從云上取樣,聽起來是非常好的理念。但是,這可以在我們計算機科學里面有更加好的應用。我們的一些數據在服務器上已經分布了,如果重新抽樣,數據級拿過來,從里面進行抽樣,得先返回去,再回到這個地方。意味著什么呢?從這個上面進行取樣,講的更清楚一些,就是基于終端的數據,這是一個分布式的,可以從任何一側進行取樣。比如說從一天當中這個數據發生的時間當中取樣,同樣一個大的數據級可以做一次,然后反復的做,這又意味著什么?如果這樣取樣的話,從其中一個點上分布,可以得到其中一個點,然后按比例的高度劃分,我得到這一點,再次做一下,可以獲得同樣的點。做N次,在某些點上可以得到很多次。這跟我們取樣和替代一樣,把一個樣品拿過來然后再返回去,反復地做。
    我們經常描述,把最初的數據拿過來重新取樣,然后做很多次,就是所謂的引導程序。數據點上有替代,可以做數學計算,0.632次,如果有這個取樣的話,就有632個。不能做這么大,這是我們主要的程序,在隨意的預估上,可以達到引導程序,已經超越一些小數據了,這是可能會帶來的一些問題。
    2.二次抽樣(Subsampling)
    還有另外一個方面,就是統計學家們做的。他們需要有競爭力,出現另外一個程序的話,它也可以來解決,叫做二次取樣。二次取樣跟以前一樣,進行一個取樣,在這個里面可能太大了,我們用一個子抽樣,或者再次的抽樣,進行一個劃分。我們很快的到預估值上,在這個B點上得到9.5的數字,我可以再次去做,把B點從N點里面取出來,可以做很多次。我們可以有多少的估算值,還有這樣的浮動,聽起來很好,一個數據級,我得到各種估算值,問題就是是否正確。因為B點,預算值大小取決于N點的數量,這個取樣是來了解這些誤差。我們可以有這樣的浮動,規模不一樣的,尺寸大小不一樣,錯就錯了。所以不能進行二次抽樣估算得到答案,這個答案是錯誤的。
    這里關鍵問題產生了,這個比例是錯了,這個值太大了,因為這個數據級太小了。我們重新設定他們的尺寸,這樣一個比例怎么進行設置?一般不知道怎么做。對于像一個黑匣子一樣,在數據庫里面放一些東西,用戶定義的功能,就不知道它的尺寸多大,然后還有一定數量的數據點等,這也是一個問題,你必須要從理論上針對每一個黑匣子去做。更加嚴重的問題是,如果在現實中使用的話,如果是工程上的默認,這里有一個例子,50000個合成數字,我們還有一些計算,我們用合成的方法做,知道真正的Airbas是什么,這是我們做的結果。再強調一點,這里并沒有任何二次的抽樣,只需要1.5次的工作,就可以進行取樣。
    這里誤差有一個核算,我們有合成的數據。X軸上看到的時間,運行的是二次取樣,不同的取向,還有y軸上,你可以看到0.5在這個上面,這個誤差是很壞的,這個藍色的點是一個藍色的程序,這是Bootstrap的對象,可以很快的穩定走下來。我們可以來把這個誤差變成0,然后我們可以進行平均,在這個上面,并不是要達到Bootstrap,在合理的范圍內,我們達到6,這個還是有問題的,然后在7、6.8,然后在綠色的線下面,他們更有效的使用我們的引導程序,引導程序的效率是很高的。它也是有一個N的融合。這個B是一個最中心的限制,我們感到很驚訝,就是在80年代論證的時候。
    對于這些我可以看到非常好的結果,現在的0.9是這個淺綠色又出現問題了,它還重復出現,但是這個值我們還不知道,我們知道這是真實的地方,正確的價值,但是現實當中我們是無法知道的。工程師的一些方法有的時候是做不到的。[page]
    3.新流程的小“自助包”(Bag of little bootstraps)
    我們還有另外一個理念“小自助包”,我將會討論新的步驟結合引導程序和二次抽樣,并且運用他們最好的部分。同小部分的數據一起,比如說二次抽樣和同樣適合分布式計算平臺。但是,與引導程序相同,它并不需要分析的部分,所以想到一些理念,我們的Bootstraps運行40多年了,統計學家不會有任何的程序上的擔心。
    再回到這個圖片,我們還有真實性,還有數據級,還有一個Size B,進行重新的取樣?,F在我們注意到這個Size B的數據是來自于周圍的一個步驟,他們還是間接的來自下面一個真實的情況。我們繼續看我們的子集,圖片看上去不太好,現在的N不是10,想一下預估值和估算值也是非常好的近似值。然后不要考慮這是否是真實的,你現在面臨這樣的世界,你是一個大家伙,這是你真實的情況。你可以進行抽樣,基于我們的B點,它是一種分布,你可以來去抽樣,按你所需要的次數,多少次都可以,只要能想到的。你把這個對象拿過來,然后你可以及時的進行抽樣,現在在正確的比例值上,有合適的數據級是需要的。其中很多點會重復很多次。
    然后我們多次的對它進行取樣,在某些點可能完全不做,然后我們有B點,覺得它非常小,我們覺得它是分布式的。我們有一個非常好的叫做B取樣的分子級,我不想去分析它,盡管這是一個本地的網絡,但是也不會把它分散。所以每一個B點會多少次被二次取樣,這些數據在什么地方,我們可以把這個放在原來的基礎上,我們可以做多次的事情,再做引導程序,這樣的話,我們把子取樣進行引導,有一張圖作為我的總結。
    這個流程比較復雜,你把B取樣的一個子樣,然后放在一個數據級上,然后又替代一段時間內,你獲得的值,因此上面是一個處理器,它有一個引導程序,我們為什么不用一個框進行解決問題呢?他是一個比較小的取樣,它是正確的,但是有很多的噪音,我們必須要平均。所以必須需要多個框,可能需要200個處理器都執行同樣的一個計算的流程。那么,他們可能都會有一個平均的錯誤率。
    這是有效的,首先回到一個TB的問題,N=N的6次方,比如說我們子樣數據級的大小是4GB,而再次取樣的數據級別也是4GB,那么這張圖和剛才那張圖是一樣的。就是在一個數據集上,加大計算機的利用率。如果在真正的分布式的計算環境里面做,我想應該是0.5TB,會在一個大的數據庫里會發生什么呢?我們看一下引導程序,不可能進行并行化,我們使用并行計算,通過機器學習,做第一個再取樣,再做一次,然后再并行計算的計算機上進行Bootstraps計算,大概15000秒的時間獲得一個合理的答案,對于應用來說稍微有一點慢了。所以我們現在怎么做?我們有一個算法。對于0.5TB的數據,放到所有本地的200個處理器上,也就是說這個紅點的位置,然后再取樣,再做引導程序。我以前在機器學習方面,我不可能有這樣的圖做出來,只是20%、30%的完善。這卻改變了并行計算的方式,我們可以進行非常大型的一種引導程序,我們現在可以在數據庫中做,我們正在開發關系型的數據庫當中。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢