明確目標:發現頻繁項集。
首先討論幾個關鍵問題。
1.如何判斷具有兩個屬性值的2-子集包含在3-子集裡面?書上說使用雜湊的方法可以使這個過程更加快速。如何儲存這些子集呢?為了更加方便地進行集合之間的與操作,以及子集的判斷操作,我覺得,可以使用set儲存這樣的每乙個子集。
2.如何讓我的演算法可以適用於我的資料呢?
此處我發明了一種創新方法。的也就是說,我的資料的七個列並非每乙個都是0,1變數,還有應該加入進來的last-evaluation需要進行離散化處理(0.6為界限進行01劃分)。那麼對於離散值的3*7*5的一百多中可能的組合,每一種組合和另外的0-1變數相組合,來進行一次aprior演算法的呼叫,然後把這一百多個計算結果進行合併和排序,得到最終的頻繁項集的計算結果。其實,在每一種組合中,資料集就相對縮小了很多。
3.如何處理劃分後的資料子集呢?
重點或者說只對0-1變數進行處理即可。這些變數1視作有,0視作無。每乙個欄位名的存在就表示1的出現。這樣每乙個字段對應值的出現次數就容易統計了。(這是怎麼統計的呢?一遍掃瞄每乙個事務,每乙個事務包含該欄位,則該字段計數加一。對於2-或者3-子集同樣。)所以,對於2-子集以及3-子集,其實可以用set儲存,因為每乙個子集對資料的重複性沒有要求。
#發現了乙個哲學問題
其實每乙個函式重要的是功能,而其輸入和輸出的格式並不是那麼的重要。如果呼叫過程中發現了待處理資料不匹配的現象,其實變換一下輸入資料的格式就可以繼續使用原來的函式了,完全沒有必要大改原來的功能函式。method翻譯為方法,想必也是這個意思吧!
今晚通過處理構件部分,漸漸發現了一些脈絡。下面需要做一些資料處理的工作。大表就用hashset的arraylist來進行儲存比較合適。
接下來要做的工作是,在資料讀入的同時進行連續數值的離散化。
然後,注意基於三元離散值的分離和合併操作。
當然,最終的落腳點還是要處理針對乙個事務集的發現頻繁項集。(要把資料變換成事務集。)
資料探勘之用python實現Apriori關聯演算法
apriori演算法指導我們,如果要發現強關聯規則,就必須先找到頻繁集。所謂頻繁集,即支援度大於最小支援度的項集。如何得到資料集合d中的所有頻繁集呢?apriori演算法是挖掘布林關聯規則頻繁項集的演算法。apriori演算法利用頻繁項集性質的先驗知識,通過逐層搜尋的迭代方法,即將k 項集用於探察 ...
關聯規則挖掘基本概念與Aprior演算法
我計畫整理資料探勘的基本概念和演算法,包括關聯規則挖掘 分類 聚類的常用演算法,敬請期待。今天講的是關聯規則挖掘的最基本的知識。關聯規則挖掘在電商 零售 大氣物理 生物醫學已經有了廣泛的應用,本篇文章將介紹一些基本知識和aprori演算法。啤酒與尿布的故事已經成為了關聯規則挖掘的經典案例,還有人專門...
關聯規則挖掘基本概念與Aprior演算法
關聯規則挖掘在電商 零售 大氣物理 生物醫學已經有了廣泛的應用,本篇文章將介紹一些基本知識和aprori演算法。啤酒與尿布的故事已經成為了關聯規則挖掘的經典案例,還有人專門出了一本書 啤酒與尿布 雖然說這個故事是哈弗商學院杜撰出來的,但確實能很好的解釋關聯規則挖掘的原理。我們這裡以乙個超市購物籃迷你...