1. 程式人生 > >看《集體智慧程式設計》二三章總結

看《集體智慧程式設計》二三章總結

第二章 提供推薦

推薦的方式主要分為兩類,一種是基於物品的推薦,一種是基於使用者的推薦。基於物品的推薦,就是計算物品之間的相似度,例如物品A和物品B相似,假如使用者購買了物品A,則使用者極有可能購買物品B。基於使用者的推薦就是找到相似的使用者,例如“使用者A購買了商品A和商品B,使用者B購買了商品A,假如經過計算,使用者A和使用者B是相似的,則使用者B極有可能購買商品B。

在資料量大的情況下,基於物品的過濾能夠得到更好的結論,因為物品之間的比較不會像使用者間的比較那麼頻繁變化,且它允許我們將大量的任務預先執行,從而更快的給出推薦結果。

文中介紹了兩種相似度計算方法:歐幾里得距離和皮爾遜相關度

歐幾里得距離

:歐幾里得距離是非常簡單的相似度計算,他將人們都評價過的物品作為座標軸,將參與評價的人繪製到圖上,並考察他們距離的遠近,他們的距離越近,表明他們越相似,如下圖:


皮爾遜相關度:是一種更為複雜的計算相似度的方法,它是判斷兩組資料與某條直線擬合的程度的一種度量。如果某人總是傾向於比另一個人更高的分,而兩者的分值之差總是保持一致,則他們仍然存在很好的相關性。而歐幾里得距離的評價方法會應為一個人的評價始終比另一個人嚴格,得出兩個人不相似的結論,即是他們的品味相似。如下圖所示:


第三章 聚類

分級聚類

分級聚類通過不斷的將最為相似的群組兩兩合併,構造出一個族群的層級結構。在每次迭代過程中,分級聚類演算法會計算兩個組群見的距離,並將距離最近的兩個組群合併成一個新的組群,知道剩下一個族群。如圖所示:


K-均值聚類

K-均值聚類演算法首先會隨機確定K箇中心位置,然後將各個資料項分配給最鄰近的中心點。待分配完成後,聚類中心就會移到分配給該聚類的所有節點的平均處,然後整個分配過程重新開始。這一過程一直重複下去,知道分配過程不再變化,下圖顯示了這一過程,其中涉及了五個資料項和連個聚類。