推薦系統實戰 出租公寓專案5 基於聚類分析推薦

2021-08-17 06:38:28 字數 1748 閱讀 7741

**在這裡

聚類通俗的講,即所謂「物以類聚,人以群分」。聚類 (clustering) 是乙個資料探勘的經典問題,它的目的是將資料分為多個簇 (cluster),在同乙個簇中的物件之間有較高的相似度,而不同簇的物件差別較大。

簡單,非常簡單!!!!

聚類是非監督版的『分類』,把相近的資料劃分成多個簇,乙個簇內的所有資料相關性很好。

在推薦系統的初期,使用者檢視的公寓資訊很少,協同過濾演算法施展不出身手,聚類演算法可以在協同過濾演算法之前做預處理,適當擴大使用者有效操作,提高協同過濾演算法的效果。

同時,在某些方面,聚類演算法縮小的計算範圍,只計算相關簇內的資訊即可,很好的減少的計算量,提高了演算法的效率。

k均值(k-means)演算法是簡單的聚類演算法,同時也是最基礎,使用最為廣泛的聚類演算法。

k均值聚類演算法首先會隨機確定k個中心位置(位於空間中代表聚類中心的點),然後將各個資料項分配給最臨近的中心點。待分配完成之後,聚類中心就會移到分配給該聚類的所有節點的平均位置處,然後整個分配過程重新開始。這一過程會一直重複下去,直到分配過程不再產生變化為止。下圖是包含兩個聚類的k-均值聚類過程:

k均值演算法有2個難題?

1,k是多少?2,k的值分別是多少?

一般情況下k是需要人來確定的,不同的產品,不同經驗的人員,給的值是不一樣的。

k點的值初始都是隨機的,每次都不一樣,聚成的簇也就不一樣。

用另一種聚類演算法canopy

canopy演算法主要是給k均值演算法做資料預處理的,就是要找到比較理想的簇的個數及簇的初始點位置。

圖中有乙個t1,乙個t2,我們稱之為距離閥值,顯然t1>t2,這兩個值有什麼用呢?我們先確定了乙個中心,然後計算其他點到這個中心間的距離,當距離大於t1時,小於t1大於t2時,小於t2時,對這個點的處理都是不一樣的。

while d is not empty

select element d from d to initialize canopy c

remove d from d

loop through remaining elements in d

if distance between d_i and c < t1 : add element to the canopy c

if distance between d_i and c < t2 : remove element from d

endadd canopy c to the list of canopies c

endd指代一組資料,d_i表示d中的各個資料。

是不是還不夠明白?下面用中文進行說明:

1:給我一組存放在陣列裡面的資料d

2:給我兩個距離閾值t1,t2,且t1>t2

3:隨機取d中的乙個資料d作為中心,並將d從d中移除

4:計算d中所有點到d的距離distance

5:將所有distance具體實現請看/cluster.py

canopy演算法**從網上摘錄,kmeans演算法**來自《機器學習實戰》中第10章的**。

canopy演算法的結果每次也不一樣,但都差距都很少。為了更公平的選出k,7次canopy演算法,減去最大值和最小值,剩下的和平均數最接近的那個值就是k的值。

k勻值演算法計算時間較長,所以最好是把計算結果儲存下來,以後隨時可以使用。

推薦系統實戰 出租公寓專案8 推薦系統評估

前面說了那麼多,推薦系統的冷啟動,協同過濾演算法,聚類演算法,關聯規則,混合演算法,那現在問題出來了,我用哪種演算法來寫我自己的公寓出租推薦系統呢?一是憑經驗,二,所有演算法都測試一遍,看哪個效果好!效果好的標準是什麼?就是馬上要說的推薦系統的評估,指標。當然,ab test也有缺點,週期比較長,必...

推薦系統實戰 出租公寓專案2 冷啟動

github 產品的形式,決定了解決問題的方法。微博新使用者註冊的時候,會問你對哪些領域感興趣 就是在得到你的興趣愛好,還建議關注一些大v,也是乙個意思。推薦系統實踐 特意拿出一章來說推薦系統冷啟動問題,裡面講的很好了,有必要看一看。具體到 出租公寓專案 怎麼來做呢?可以參考58同城的做法。我們可以...

基於大資料技術推薦系統演算法案例實戰教程

基於大資料技術推薦系統演算法案例實戰教程 密碼 vrvf 網際網路行業是大資料應用最前沿的陣地,目前主流的大資料技術,包括 hadoop,spark等,全部來自於一線網際網路公司。隨著電子商務規模的不斷擴大,顧客需要花費大量的時間才能找到自己想買的商品。這種瀏覽大量無關的資訊和產品過程無疑會使淹沒在...