1、聚類演算法的目的是採集資料,然後從中找出不同的群組。
2、universal feed parser
3、皮爾遜相關度其實判斷的是兩組資料與某條直線的擬合程度,當兩者完全匹配時,計算結果為1.0,當兩者毫無關係時,計算結果為0.0.
4、分級聚類
分級聚類的結果會產生一棵樹:
分級聚類雖然會返回一棵形象直觀的樹,但這種方法有兩個缺點。在沒有額外指定的情況下,樹形檢視不會真正將資料拆分成不同的組,而且該演算法的計算量驚人。因為我們必須計算每兩個資料項之間的關係,並且在合併項之後這些關係還得再計算,所以在處理大規模的資料集時,該演算法的執行速度會非常緩慢。
5、k-均值聚類
(會預先告訴演算法希望聚成幾類)
k-均值聚類演算法首先會隨機確定k個中心位置,然後將各個資料項分配給最臨近的中心點。待分配完成後,聚類中心會移動到分配給該聚類的所有節點的平均位置處,然後整個分配過程重新開始。這一過程會一直重複下去,知道分配過程不再產生變化為止。
例如5個資料項的2個聚類:
k-均值聚類的計算效率會比分級聚類快一些,但是k值的選取會影響聚類的效果。
6、beautiful soup
是乙個解析網頁和構造結構化資料表達形式的優秀函式庫。它允許我們利用型別(type)、id或者任何屬性來訪問網頁的任何元素。它可以很好的處理包含不規範html標記的web頁面,當我們根據站點的內容來構造資料集時,這一點非常有用。
7、tanimoto係數
tanimoto coefficient,它代表的是交集(兩個集合中均出現的項)與並集(兩個集合中只要有一次出現即可)的比率。
這個係數很容易計算:
def資料格式為:tanimoto(v1,v2)
c1,c2,shr =0,0,0
for i in
range(len(v1))
if v1[i] != 0 : c1 += 1; #
出現在v1中
if v2[i] != 0 : c2 += 1; #
出現在v2中
if v1[i] != 0 and v2[i] != 0 : shr += 1; #
在v1和v2中都出現了
return 1.0 - (float(shr)/(c1+c2-shr))
8、多維縮放(multidimentional scaling)技術
其目標是嘗試繪製出一幅圖來,圖中各資料項之間的距離遠近對應於它們彼此之間的差異程度。為了做到這一點,演算法首先需要計算出所有項之間的目標距離。
step1:距離資訊矩陣(目標距離)
step2:將所有資料項隨機放置在二維圖上
step3:計算各項資料之間的實際距離(當前距離)
step4:對資料項施力,將它推向目標距離
如a,它與b之間的目標距離為0.2,而實際距離為0.4,因此應該將a推向b。同理,應將a遠離c和d
每乙個節點的移動,都是所有其他節點施加在該節點上的推或拉的綜合效應。節點每移動一次,其當前距離和目標距離之間的差距就會減小一些。這一過程會不斷的重複多次,直到我們無法再通過移動節點來減少總體的誤差為止。
《集體智慧型程式設計》 讀書筆記
恢復內容開始 第二章 提供推薦cf 協同型過濾 允許人們根據自己對文件的感興趣程度新增標註,並利用這一資訊為他人進行文件過濾。蒐集偏好 在python中建立乙個巢狀的字典 尋找相近的使用者 計算不同使用者間的相似度評價值 方法1 歐幾里得距離評價 以經過人們一致評價的物品作為座標軸,然後將參與評價的...
集體智慧型程式設計筆記 聚類
聚類是一種很常見的資料處理方式,為的就是把具有相同型別的資料聚集在一起,再做處理,聚類屬於無監督學習演算法的一種,沒有正確的結果可供檢驗。書中介紹了兩種聚類的方法,一種是層次聚類,另一種是是k 均值聚類。層次聚類可以看做是在乙個圖中找出最小代價樹的kruskal演算法,每次處理時會將兩個相聚最近的不...
集體智慧型程式設計 讀書筆記 一
這本書豆瓣上得分很高,可以當作機器學習,資料探勘在當前web應用的入門書,我也是乙個門外漢加初學者,正在讀這本書 第二章 1.相似度,偏好 首先看例子,現在有乙個資料集 書中給出的 記錄每個人對不同電影的打分,如下所示 critics gene seymour michael phillips cl...