大資料演算法 亞線性演算法概述

2021-10-07 04:08:30 字數 1827 閱讀 2872

–中國大學生mooc 王巨集志老師大資料演算法 聽課筆記–

亞線性水庫抽樣是一種經典的亞線性空間演算法。

問題背景:

有時候我們需要在海量資料中進行均勻的抽樣,但是由於海量資料無法進行儲存,所以我們只能讓它從我們面前流過一次。

問題描述:

輸入:一組資料,其大小未知

輸出:這組資料的k個均勻抽樣

要求:僅掃瞄資料一次

空間複雜性為o(k) 和抽樣大小有關,和整個資料無關

掃瞄到資料的前n個數字時(n>k),儲存當前已掃瞄資料的k個均勻抽樣

演算法步驟:

申請乙個長度為k的陣列儲存抽樣。

儲存首先接收到的k個元素

當接收到第i個新元素t時,以k/i的概率隨機替換a中的元素(即生成[1,i]間隨機數j,若j<=k,則以t替換a[j])

演算法原理:

當接收到第i個新元素t時,以k/i的概率儲存在水庫中,所以在接收第i+1個數時,第i個數還能儲存在水庫當中的概率是1-1/(i+1),因為在接收到第i+1個數時要以k/(i+1)的概率隨機替換,而第i個數被選中的概率是1/k,它們相乘即為1/(i+1)。1/(i+1)為第i個元素被換出水庫的概率,所以1-1/(i+1)就是在接收第i+1個元素時第i個元素在陣列中的概率。同理,在接收第i+2個元素時,第i個元素讓然保留在水庫中的概率為1-1/(i+2)。以此類推,當接收第n個元素時,第i個元素儲存在水庫中的概率為1-1/n。只有這些事件都放生了,最終第i個元素才能保留在水庫當中。因此第i個元素最終被保留在水庫抽樣當中的概率,就是這些事件的概率的乘積,即

演算法偽**:

init : a reservoir with the size: k

for i= k+1 to n

m=random(1, i);

if( m < k)

swap the mth value and ith value

end for

平面圖的直徑近似演算法是一種經典的亞線性時間演算法。

【注釋】:在圖論中,平面圖是可以畫在平面上並且使得不同的邊可以互不交疊的圖。

【注釋】:近似演算法是電腦科學中演算法研究的乙個重要方向。所謂「近似」,就是指結果不一定是最優的,但是也在可以承受的範圍內,而且可以比精確求解消耗更少的資源。

問題背景:

當輸入的距離矩陣過大時,我們無法通過正常的演算法對其進行求解。所以我們希望通過近似演算法對其求得乙個盡量相似的解。

問題描述:

輸入:m個頂點的平面圖,任意兩點之間的距離儲存在矩陣d中,即點i到點j的距離為dij

輸入大小是n=m的平方

最大的dij是圖的直徑

點之間的距離對稱且滿足三角不等式

輸出:該圖的直徑和距離最大的dij

要求:執行時間為o(n)

演算法步驟:

任意選擇k<=m

選擇使得dkl最大的l

輸出dkl和(k, l)

演算法原理:

根據三角不等式,我們可以得到dij <= dik + dkj,又因為dkl是我們所求最大值,所以有dik <= dkl,dkj <= dkl.可以得到dij <= dkl+dkl <= 2dkl。得到近似比2。

大資料演算法 大資料演算法概述

大資料 當下人人津津樂道的話題。然而對於大資料的公認定義以及完美體系還沒有完全誕生,但大街小巷已遍布雲計算 大資料,這些領域的經典案例更是層出不窮。由於認知的有限,就不繼續發表拙見了。只是因為很喜歡演算法和dm,加上最近在mooc上學習一門hit的 大資料演算法 課程,收穫很多特記錄於此,也推薦一下...

亞時間線性演算法

定義 m個頂點的圖,任意兩點的距離儲存在矩陣d中,求兩點之間的最遠距離。演算法 隨機選擇一行k,在這一行中找出最大的值作為直徑。演算法分析 該演算法的近似比為2 d ij dik dkj dkl dkl 2dk ld leq d d leq d d leq 2d dij d ik dkj dkl d...

線性回歸演算法概述

線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。假設銀行會根據工資和年齡來限定貸款額度,請解決兩個問題 銀行會帶給我多少錢?工資和年齡對貸款額度有多大的影響?資料 工資和年齡 2個特徵 目標 銀行會給我多少錢 標籤 考慮 工資和年齡都會...