Chat老師隨機教你演算法之Reservoir Sampling(蓄水池抽樣)

更新 發佈閱讀 3 分鐘

解決的問題:假設你有一條超長資料流或不知道總長度的資料(例如日誌、Sensor stream),想要等機率抽到1筆或k筆當作隨機樣本,但你不能把全部資料存起來。

抽一筆的流程

  1. 先把第一筆當作樣本sample
  2. 讀到第i筆時(i從2開始),以1/i的機率用它替換掉sample
  3. 最後留下來的那一筆,會是所有資料中等機率的隨機一筆

1/i機率的程式寫法可以random(0, i-1)等於0得之

證明為等機率,第j筆最後留下來的機率計算方式為,

  1. 第j筆換掉sample的機率是1/j,換不掉的機率是1-(1/j)
  2. 後續筆數都換不掉被選中為sample的機率為 (1-(1/(j+1)))(1-(1/(j+2)))(1-(1/(j+3)))...(1-(1/n))),連乘後消去((j)/(j+1))((j+1)/(j+2))((j+2)/(j+3))...((n-1)/n)=j/n
  3. 合併算式後(1/j)(j/n)=1/n,所以每一筆為樣本sample的機率為1/n,得證等機率

抽k筆的流程

  1. 先放k筆進池子
  2. 第i筆(i > k)以機率k/i決定要不要進池子
  3. 若要進池子,就隨機踢掉池子中的一筆(每個位置機率1/k)
  4. 依照以上方式,任一筆出現在蓄水池的機率都是k/n

k/i機率的程式寫法可以random(0, i-1)落於[0, k-1]得之

證明機率為k/n,可分兩種情況證明

t > k 後來才來的元素

  1. 當在處理第t筆時,其被選進池內的機率是k/t
  2. 被選進池內後一路不被踢掉,直到處理完第n筆的機率計算為

每一筆後續元素i=t+1...n,第i筆發生替換事件的機率為k/i,而在替換事件發生的前提下,池內元素被踢掉的機率為1/k,所以處理第i筆時t被替換掉的機率為(k/i)(1/k)等於1/i,因此處理第i筆時t不被替換掉的機率為1-(1/i)等於(i-1)/i,直到處理完第n筆都替換不掉t的機率為(t/(t+1))((t+1)/(t+2))...((n-1)/n),連乘消去後等於t/n;合併考量下,在t < k時t被選進池內且不被替換掉的機率得證為(k/t)(t/n)等於k/n

t <= k 一開始就在池內的元素

因為一開始已在池內,因此需計算k+1...n過程t都不被替換掉的機率;假設i=k+1...n,第i筆發生替換事件的機率為k/i,而替換掉池內t的機率為1/k,可得(k/i)(1/k)等於1/i為t被替換掉的機率,進而知道t不被替換掉的機率為1-(1/i)等於(i-1)/i;直到處理完第n筆都替換不掉t的機率因此為(k/(k+1))((k+1)/(k+2))...((n-1)/n),連乘消去後得k/n得證



留言
avatar-img
Edison Lin的沙龍
0會員
3內容數
你可能也想看
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
將 ChatGPT 與 Canva 結合使用可以幫助加速製作您的社交文案。 我從一個 YouTube 視頻中了解到如何將 ChatGPT 與 Canva 結合使用來創建社交媒體帖子。這是一個非常簡單的過程,但它確實有幾個步驟,他確實幫我省下很多「複製、貼上」的過程,我將在這篇文章中解釋如何操作。 一
Thumbnail
將 ChatGPT 與 Canva 結合使用可以幫助加速製作您的社交文案。 我從一個 YouTube 視頻中了解到如何將 ChatGPT 與 Canva 結合使用來創建社交媒體帖子。這是一個非常簡單的過程,但它確實有幾個步驟,他確實幫我省下很多「複製、貼上」的過程,我將在這篇文章中解釋如何操作。 一
Thumbnail
哈囉大家好,我是怡佳(Elise)。 ChatGPT 到底怎麼用?你是不是想學ChatGPT 但又找不到詳細的懶人包呢? 這邊都幫你整理好啦!
Thumbnail
哈囉大家好,我是怡佳(Elise)。 ChatGPT 到底怎麼用?你是不是想學ChatGPT 但又找不到詳細的懶人包呢? 這邊都幫你整理好啦!
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
瞭解如何透過日文來預約日本風俗店,包括判斷店家是否接受外國客人,書寫預約信件的格式、注意事項以及日文信件輔助工具的使用。
Thumbnail
瞭解如何透過日文來預約日本風俗店,包括判斷店家是否接受外國客人,書寫預約信件的格式、注意事項以及日文信件輔助工具的使用。
Thumbnail
前幾天朋友發了一張圖片給我看, 內容是計時人員(以下稱小A)在通訊軟體上跟老闆辭職並表示只做到這個月底, 但老闆希望他能依照班表做到下個月中, 但小A傳了勞基法上關於提起辭職的天數計算方法。 對我來說,甚麼樣的人都有, 也甚麼事情都會發生, 我不會特別去探討評論或是選擇站邊。
Thumbnail
前幾天朋友發了一張圖片給我看, 內容是計時人員(以下稱小A)在通訊軟體上跟老闆辭職並表示只做到這個月底, 但老闆希望他能依照班表做到下個月中, 但小A傳了勞基法上關於提起辭職的天數計算方法。 對我來說,甚麼樣的人都有, 也甚麼事情都會發生, 我不會特別去探討評論或是選擇站邊。
Thumbnail
Chat GPT做為一個對話AI軟體,它不僅擁有龐大的資料庫,更能夠用口語的方式表達。很多人會將它當作一個可以簡單問答的機器人,日常生活瑣事都可以問,更進階的甚至可以用來整理文字重點、翻譯、寫程式等等。但其實它的潛力遠比你我想像的多。
Thumbnail
Chat GPT做為一個對話AI軟體,它不僅擁有龐大的資料庫,更能夠用口語的方式表達。很多人會將它當作一個可以簡單問答的機器人,日常生活瑣事都可以問,更進階的甚至可以用來整理文字重點、翻譯、寫程式等等。但其實它的潛力遠比你我想像的多。
Thumbnail
有幸在今年2月,上了台灣大學進修推廣學院,開的人工智能AI的相關課程,對這個領域陌生的我,剛好趕上Chat GPT爆紅時,讓我更了解AI的功能,以及它能幫人解決的問題。 有一個不完全但是貼切的比喻,那就是Chat GPT它是一個文字接龍器,這個文字接龍器有這強大的資料庫以及學習功能
Thumbnail
有幸在今年2月,上了台灣大學進修推廣學院,開的人工智能AI的相關課程,對這個領域陌生的我,剛好趕上Chat GPT爆紅時,讓我更了解AI的功能,以及它能幫人解決的問題。 有一個不完全但是貼切的比喻,那就是Chat GPT它是一個文字接龍器,這個文字接龍器有這強大的資料庫以及學習功能
Thumbnail
Soluron β 首部語音動畫登場!真人+Q版形象一次展現,結合中英雙語配音與AI聲線,完整展現 Chat老師家族的智慧角色魅力,由 Maxine 全程企劃製作。
Thumbnail
Soluron β 首部語音動畫登場!真人+Q版形象一次展現,結合中英雙語配音與AI聲線,完整展現 Chat老師家族的智慧角色魅力,由 Maxine 全程企劃製作。
Thumbnail
前言 最近Chat GPT很夯,網路上也對於Chat GPT出現很多文章,對於我原本就有在創作(小說)的人,對於Chat GPT的出現,其實不太擔心會取代我。 聽了歐陽立中老師的podcast的Chat GPT那麼猛!我們寫作還有前途嗎? 覺得有些心得,於是決定寫一篇給大家參考
Thumbnail
前言 最近Chat GPT很夯,網路上也對於Chat GPT出現很多文章,對於我原本就有在創作(小說)的人,對於Chat GPT的出現,其實不太擔心會取代我。 聽了歐陽立中老師的podcast的Chat GPT那麼猛!我們寫作還有前途嗎? 覺得有些心得,於是決定寫一篇給大家參考
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News