【大数据】三、相似项发现(Jaccard、Shingling、MinHashing)
文章目錄
- 1. Jaccard
- 1.1 例題
- 2. shingling
- 2.1 k-shingle
- 2.2 k 值大小的選擇
- 2.3 例題
- 3. MinHashing
- 3.1 minhashing 作用:壓縮
- 3.2 算法步驟、例題
- 4. LSH 行條化策略的分析
- 5. 距離測度
1. Jaccard
定義 Jaccard 相似度計算公式:
定義 Jaccard 距離:
1.1 例題
- 不重復(fù)
- 重復(fù) (bag),最大值為 1 / 2
2. shingling
- 將文檔用短字符集合來表示
2.1 k-shingle
- character 級別:包括空格
- word 級別:不包括空格和逗號句號符
2.2 k 值大小的選擇
- 如果文檔由郵件組成,那么選擇 k = 5 比較合適。
- 如果文檔比較大,選擇 k = 9 比較合適
2.3 例題
- shingles
- 帶停頓詞的 shingles:需要包含停頓詞
3. MinHashing
3.1 minhashing 作用:壓縮
將文檔 shingle 成很小的集合之后,就可以寫出下面的特征矩陣了。
用下面的特征矩陣來計算復(fù)雜度還是很高,MinHashing算法可以用于壓縮原始特征矩陣,但是不丟失相似性。
- 當(dāng) hash 出來所有列號不沖突時,稱為真正的排列((true permutation)
3.2 算法步驟、例題
-
①對特征矩陣的列號,用 hash 進行重排
-
②初始化簽名(signature)矩陣為無窮
-
③逐漸將特征矩陣填入簽名矩陣
首先,考慮①中的第0行,h1(0) = 1,h2(0) = 1,而只有S1和S4對應(yīng)下來才是1.所以在簽名矩陣中,(h1, S1) = 1,(h1, S4) = 1,(h2, S1) = 1,(h2, S4) = 1.因為1 <∞。
其次,再考慮②中的第1行,h1(1) = 2,h2(1) = 4,而只有S3對應(yīng)下來才是1,所以在簽名矩陣中,(h1, S3) = 2,(h2, S3) = 4,因為 2 < ∞,4 < ∞。
然后按部就班。
最后的結(jié)果為。
有可能還要求壓縮后的 Jaccard 相似度: -
Col/Col:相同位置與求和/相同位置或求和
-
Sig/Sig:相同的行數(shù)/總的行數(shù)
小技巧: -
如果是真正的排列,那么可以直接用肉眼看最小的列號,直接得出結(jié)果
-
如果列號由沖突,那么需要一步步推導(dǎo)
4. LSH 行條化策略的分析
稱為候選對的概率為:
5. 距離測度
- 歐式距離
- 余弦距離
- Jaccard 距離
- 編輯距離:插入及刪除操作的最小數(shù)目
- 海明距離:不同分量的個數(shù)
總結(jié)
以上是生活随笔為你收集整理的【大数据】三、相似项发现(Jaccard、Shingling、MinHashing)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EXCEL——图表数据标签——展示两组比
- 下一篇: css表格文字超数量就竖排_css实现文