推薦引擎內部的秘密3

2022-03-07 04:48:17 字數 1839 閱讀 7548

聚類分析

聚類 (clustering) 就是將資料物件分組成為多個類或者簇 (cluster),它的目標是:在同乙個簇中的物件之間具有較高的相似度,而不同簇中的物件差別較大。所以,在很多應用中,乙個簇中的資料物件可以被作為乙個整體來對待,從而減少計算量或者提高計算質量

其實聚類是乙個人們日常生活的常見行為,即所謂「物以類聚,人以群分」,核心的思想也就是聚類。人們總是不斷地改進下意識中的聚類模式來學習如何區分各個事物和人。同時,聚類分析已經廣泛的應用在許多應用中,包括模式識別,資料分析,影象處理以及市場研究。通過聚類,人們能意識到密集和稀疏的區域,發現全域性的分布模式,以及資料屬性之間的有趣的相互關係。

聚類同時也在 web 應用中起到越來越重要的作用。最被廣泛使用的既是對 web 上的文件進行分類,組織資訊的發布,給使用者乙個有效分類的內容瀏覽系統(門戶**),同時可以加入時間因素,進而發現各個類內容的資訊發展,最近被大家關注的主題和話題,或者分析一段時間內人們對什麼樣的內容比較感興趣,這些有趣的應用都得建立在聚類的基礎之上。作為乙個資料探勘的功能,聚類分析能作為獨立的工具來獲得資料分布的情況,觀察每個簇的特點,集中對特定的某些簇做進一步的分析,此外,聚類分析還可以作為其他演算法的預處理步驟,簡化計算量,提高分析效率,這也是我們在這裡介紹聚類分析的目的

不同的聚類問題

對於乙個聚類問題,要挑選最適合最高效的演算法必須對要解決的聚類問題本身進行剖析,下面我們就從幾個側面分析一下聚類問題的需求。

聚類結果是排他的還是可重疊的

基於層次還是基於劃分

其實大部分人想到的聚類問題都是「劃分」問題,就是拿到一組物件,按照一定的原則將它們分成不同的組,這是典型的劃分聚類問題。但除了基於劃分的聚類,還有一種在日常生活中也很常見的型別,就是基於層次的聚類問題,它的聚類結果是將這些物件分等級,在頂層將物件進行大致的分組,隨後每一組再被進一步的細分,也許所有路徑最終都要到達乙個單獨例項,這是一種「自頂向下」的層次聚類解決方法,對應的,也有「自底向上」的。其實可以簡單的理解,「自頂向下」就是一步步的細化分組,而「自底向上」就是一步步的歸併分組。

簇數目固定的還是無限制的聚類

這個屬性很好理解,就是你的聚類問題是在執行聚類演算法前已經確定聚類的結果應該得到多少簇,還是根據資料本身的特徵,由聚類演算法選擇合適的簇的數目。

基於距離還是基於概率分布模型

在本系列的第二篇介紹協同過濾的文章中,我們已經詳細介紹了相似性和距離的概念。基於距離的聚類問題應該很好理解,就是將距離近的相似的物件聚在一起。相比起來,基於概率分布模型的,可能不太好理解,那麼下面給個簡單的例子。

乙個概率分布模型可以理解是在 n 維空間的一組點的分布,而它們的分布往往符合一定的特徵,比如組成乙個特定的形狀。基於概率分布模型的聚類問題,就是在一組物件中,找到能符合特定分布模型的點的集合,他們不一定是距離最近的或者最相似的,而是能完美的呈現出概率分布模型所描述的模型。

下圖給出了乙個例子,對同樣一組點集,應用不同的聚類策略,得到完全不同的聚類結果。左側給出的結果是基於距離的,核心的原則就是將距離近的點聚在一起,右側給出的基於概率分布模型的聚類結果,這裡採用的概率分布模型是一定弧度的橢圓。圖中專門標出了兩個紅色的點,這兩點的距離很近,在基於距離的聚類中,將他們聚在乙個類中,但基於概率分布模型的聚類則將它們分在不同的類中,只是為了滿足特定的概率分布模型(當然這裡我特意舉了乙個比較極端的例子)。所以我們可以看出,在基於概率分布模型的聚類方法裡,核心是模型的定義,不同的模型可能導致完全不同的聚類結果。

探索推薦引擎內部的秘密(三)

學習到非常好的推薦系統的相關知識,轉來和大家分享,謝謝原作者!介紹完推薦引擎的基本原理,基本推薦機制,下面簡要分析幾個有代表性的推薦引擎的應用,這裡選擇兩個領域 amazon 作為電子商務的代表,豆瓣作為社交網路的代表。推薦在電子商務中的應用 amazon amazon 作為推薦引擎的鼻祖,它已經將...

Mapreduce 推薦引擎

購買過該商品的顧客還購買過哪些商品 給乙個商品,推薦購買過這個商品的使用者經常購買的五件產品 輸出是鍵值對,鍵是商品,值是5個商品的列表 map1 key userid value userid購買過的產品 map userid,item reduce1 reduce userid,item i1,...

推薦引擎分類介紹

搜尋引擎是當前快速查詢目標資訊的最好途徑。在使用者對自己需求很明確時,用搜尋引擎可以方便地通過關鍵字快速找到自己需要的資訊。但搜尋引擎並不能完全滿足使用者對資訊發現的需求,因為在很多情況下,使用者其實並不明確自己的需要,或者他們的需求很難用簡單的關鍵字來表述,又或者他們需要更加符合他們個人口味和喜好...