1. 程式人生 > >《集體智慧編程》讀書筆記

《集體智慧編程》讀書筆記

及其 ces 將他 res .com 一起 大量數據 example gen

本書源代碼下載地址

第1章 集體智慧導言

  • 集體智慧(collective intelligence)是指為了創造新的想法,而將一群人的行為,偏好或思想組合在一起.最早的應用如調查問卷或普查.在互聯網中的典型應用有WikipediaGoogle.

第2章 提供推薦

  • 協作型過濾(collaborative filtering):通常的做法是對一大群人進行搜索,並從中找出與我們品味相近的一小群人.算法會對這些人所偏愛的其他內容進行考查,並將它們組合起來構造出一個經過排名的推薦列表.
  • 基於用戶的協作型過濾:
  1. 搜集偏好:用一種方法表達不同人及其偏好.python可以用嵌套字典
    ,對於規模較大的數據建議使用數據庫.
  2. 尋找相近用戶:計算人們在品味方面的相似度評價值.常用的有歐幾裏得距離(以被評價的物品為坐標軸,評價分數為坐標,每個點代表一個人.計算人們的距離遠近.為了使偏好越相似的情況給出越大的值,可以將距離加1後取倒數)和皮爾遜相關度(以評價人為坐標軸,評價分數為坐標,每個點代表一件物品,使用一條直線來擬合這些點,根據擬合程度判斷相似度.是協方差和標準差的商.好處是修正了"誇大分值"的情況).除此之外還有Jaccard系數曼哈頓距離.
  3. 推薦物品:根據相似度評選出與自己相似度最高的n位用戶,將他們的相似度作為權重,乘以他們對不同商品的評分後除以n位用戶的相似度之和,就可以求得商品的加權評分.
  4. 匹配商品:我們還可以了解哪些商品是彼此相近的,只要將搜集偏好中的人與物品對換即可復用上述方法.
  • 基於物品的協作型過濾:
  1. 在擁有大量數據集的情況下效果較好,而且不用在每次推薦時都計算一遍.總體思路是為每件物品預先計算好最為相近的其他物品.
  2. 構造物品比較數據集:首先將反映評價值的數據倒置處理,得到物品及其用戶評價的列表,然後用上述方法得到相似度評價值並建立一個包含物品及其相近物品的字典.
  3. 獲得推薦:對於每一件我們未評分的商品,都可以用已評分的商品和它的相近程度作為權重,乘上該已評分商品的評分來得到未評分商品的加權評分.將加權評分相加後除以總相似度即可得到未評分商品的評分.
  • 對於稀疏數據集大數據集,基於物品的過濾方法要優於基於用戶的過濾方法,但它有維護物品相似度表的額外開銷.而基於用戶的過濾方法易於實現,而且無需額外步驟,因此更適用於小的變化非常頻繁的數據集.

第3章 發現群組

《集體智慧編程》讀書筆記