資料結構筆記 - 布隆過濾器 Bloom Filter
Summary
- 用途: 用來快速判斷元素是否存在於一個集合中
- 優點: 快速、節省空間
- 缺點: 可能有 false positive (不存在但判定為存在)
- 應用:
- Check Duplicate: name、email 等是否已被使用
- Filters: 過濾惡意請求 (ex: Cache penetration)、垃圾郵件等
在社群網絡中分析中,有時候會想要找出網絡當中的社群(community detection),一個最直觀的想法是直接對網絡進行分群,那麼分群結果就是各個community了。
如果我們能夠計算各個節點之間的相似性,那麼我們當然可以直接套用傳統的分群方法,如cosine similiarity,但一來是相似度特徵可能很難取得,二來是這樣分群的話就沒有利用到網絡的結構了,這時我們可以改為使用基於圖論的分群方法。
今天這篇文章會帶大家簡單瞭解什麼是cut approach, balanced-cut approach以及其代表方法spectral clustering,並示範不依賴其他套件,僅使用numpy實作spectral clustering。
Hexo Next雖然已經將許多常見的設定整合到主題當中,但大家都採用一樣的設定的話其實挺無聊的,所以今天要在Hexo Next的基礎上帶大家來美化自己的部落格,為部落格加入個人風格,如果還不知道Hexo或者NexT是什麼可以參考我之前寫的Hello Hexo!系列文章。
寫完上一篇Implement Trie (字典樹)後,沒過兩天LeetCode每日一題又出現Trie的題目了(笑),題目是211. Design Add and Search Words Data Structure,簡單來說就是字典樹加上一點正規表達(regular expression)的概念,舉例來說trie裡有bad
,那搜尋b.d
的話也要回傳true
,詳細題目一樣自己到LeetCode去看囉。
今天在寫LeetCode每日一題時遇到208. Implement Trie (Prefix Tree),之前因為覺得Trie好像很難所以一直不願面對,但這題就是要跟Trie的直球對決了想躲也躲不掉XD,Anyway,看了一下發現Trie其實蠻好理解的,今天就來認識一下Trie,然後看看這一題可以怎麼寫吧!(Python, C++)
NexT是一個相當受歡迎的Hexo主題,外觀簡潔、功能強大,且持續有在維護,今天會教大家如何套用NexT主題,並啟用標籤頁及站內搜尋等功能。
NexT 官網:https://theme-next.js.org/
NexT GitHub:https://github.com/next-theme/hexo-theme-next