背景:
頻繁項集挖掘演算法用於挖掘
經常一起出現的item集合(稱為頻繁項集)
,通過挖掘出這些頻繁項集,
當在乙個事務中出現頻繁項集的其中乙個item,則可以把該頻繁項集的其他item作為推薦
。比如經典的購物籃分析中啤酒、尿布故事,啤酒和尿布經常在使用者的購物籃中一起出現,通過挖掘出啤酒、尿布這個啤酒項集,則當乙個使用者買了啤酒的時候可以為他推薦尿布,這樣使用者購買的可能性會比較大,從而達到組合營銷的目的。
常見的頻繁項集挖掘演算法有兩類,一類是
apriori演算法
,另一類是
fpgrowth
。apriori通過不斷的構造候選集、篩選候選集挖掘出頻繁項集,需要多次掃瞄原始資料,當原始資料較大時,磁碟i/o次數太多,效率比較低下。fpgrowth演算法則只需掃瞄原始資料兩遍,通過fp-tree資料結構對原始資料進行壓縮,效率較高。
fpgrowth演算法主要分為兩個步驟:fp-tree構建、
遞迴挖掘fp-tree
。fp-tree構建通過兩次資料掃瞄,將原始資料中的事務壓縮到乙個fp-tree樹,該fp-tree類似於字首樹,相同字首的路徑可以共用,從而達到壓縮資料的目的。接著通過fp-tree找出每個item的條件模式基、條件fp-tree,遞迴的挖掘條件fp-tree得到所有的頻繁項集。演算法的主要計算瓶頸在fp-tree的遞迴挖掘上,下面詳細介紹fpgrowth演算法的主要步驟。
fpgrowth的演算法步驟:
構造條件fp-tree(conditional fp-tree)
fp-growh:遞迴的挖掘每個條件fp-tree,累加字尾頻繁項集,直到找到fp-tree為空或者fp-tree只有一條路徑(只有一條路徑情況下,所有路徑上item的組合都是頻繁項集)
注意點:
共用字首:不排序會造成不能共用字首
mahout並行化fpgrowth實現
頂 7 踩
演算法理論 PLA
perceptron learning algrithm 二值分類問題,資料線性可分 找到一條直線wtx 0,一邊全為 1,另一邊全為 1。找到了這條線 即,向量w 就得到了分類器。每次選取分類出錯的樣本點,迭代執行 wt 1 t wt t yn t xn t t代表第t次迭代 我的問題 這裡是不是...
EM演算法理論總結
主要解決具有隱變數的混合模型的引數估計 在高斯模型中,每個聚類都服從某個概率分布,我們要做的就是利用em演算法確定這些分布的引數,對高斯模型來說就是計算均值和方差,對多項式模型那就是概率 個人的理解就是用含有隱變數的含參表示式不斷擬合,最終能收斂並擬合出不含隱變數的含參表示式 假如有人告訴你,那乙個...
模型評估的一些方法理論(演算法理論)
main 一 混淆矩陣 混淆矩陣就是如下圖所示的那樣,也是最簡單的一種模型驗證方法 通過混淆矩陣可以算出模型 精度 a d a b c d 正例覆蓋率 b c d 負例覆蓋率 a a b 等。通過這麼些指標綜合考慮模型的 準確率。二 roc曲線 在講解roc曲線之前,我們先看看幾個定義 sensit...