模式挖掘演算法
1. 序列模式的序列挖掘演算法步驟
1) 排序階段。資料庫D以客戶號為主鍵交易時間為次鍵進行排序。這個階段將原來的事務資料庫轉換成由客戶序列組成的資料庫。
2) 頻繁項集階段。找出所有頻繁項集組成的集合L。也同步得到所有頻繁1-序列組成的集合。
3) 轉換階段。在找序列模式的過程中要不斷地進行檢測一個給定的頻繁集是否包含於一個客戶序列中。
4) 序列階段利用已知的頻繁集的集合來找到所需的序列。類似於關聯的Apriori演算法。 AprioriAll演算法與Apriori演算法的執行過程是一樣的,不同點在於候選集的產生,具體候選者的產生如下:
候選集生成的時候需要區分最後兩個元素的前後,因此就有<p.item1,p.item2,…,p.,q.>和<p.item1,p.item2,…, q.,p.>兩個元素。 AprioriSome演算法可以看做是AprioriAll演算法的改進,具體可以分為兩個階段:
(1)Forward階段:找出置頂長度的所有大序列,在產生Li後,根據判斷函數j=next(last),此時last=i,j>i,下個階段不產生i+1的候選項,而是產生j的候選項,如果j=i+1,那麼就根據Li生成Cj,如果j>i+1,那麼Cj就有Cj-1產生。然後掃描資料庫計算Cj的支持度。
(2)Backward階段:根據Lj中的大項集,去掉Ci(i<j)中出現的Lj項,然後計算Ci中的支持度,判斷那些在Forward階段被漏判的項集。
AprioriAll演算法和AprioriSome演算法的比較:
(1)AprioriAll用去計算出所有的候選Ck,而AprioriSome會直接用去計算所有的候選,因為包含,所以AprioriSome會產生比較多的候選。
(2)雖然AprioriSome跳躍式計算候選,但因為它所產生的候選比較多,可能在回溯階段前就占滿內存。
(3)如果內存占滿了,AprioriSome就會被迫去計算最後一組的候選。
(4)對於較低的支持度,有較長的大序列,AprioriSome演算法要好些。 GSP(Generalized Sequential Patterns)演算法,類似於Apriori演算法大體分為候選集產生、候選集計數以及擴展分類三個階段。與AprioriAll演算法相比,GSP演算法統計較少的候選集,並且在數據轉換過程中不需要事先計算頻繁集。
GSP的計算步驟與Apriori類似,但是主要不同在於產生候選序列模式,GSP產生候選序列模式可以分成如下兩個步驟:
(1)連接階段:如果去掉序列模式S1的第一個項目與去掉序列模式S2的最後一個項目所得到的序列相同,則可以將S1和S2進行連接,即將S2的最後一個項目添加到S1中去。
(2)剪枝階段:若某候選序列模式的某個子集不是序列模式,則此候選序列模式不可能是序列模式,將它從候選序列模式中刪除。
2. 求大神簡述一下LLE演算法(或降維演算法)在模式識別和數據挖掘中是怎樣被應用的呢,謝謝
關於LLE演算法具體的理論部分你可參考http://www.pami.sjtu.e.cn/people/xzj/introcelle.htm
Locally linear embedding (LLE),使用這種演算法可以進行非線性降維,關鍵是其能夠使降維後的數據保持原有拓撲結構
先給出一張下面演算法得到的圖 ,圖中第一幅
LLE演算法可以歸結為三步:
(1)尋找每個樣本點的k個近鄰點;
(2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣;
(3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值。
為原始數據,第三個為降維後的數據,可以看出處理後的低維數據保持了原有的拓撲結構。
另,本人對LLE演算法不是很熟悉,在此介紹一下其他降維演算法的使用,以SVD演算法為例。
電影推薦。
(1)假設現在有一個用戶和電影評分的二維矩陣,矩陣內容是用戶對電影的評分,現有得知某個用戶對部分電影的評分,由此為該用戶推薦他可能喜歡的電影。
(2)假設用戶有100W,電影有100W部,那麼對於任意一種推薦演算法來說,這個數據量都很大,該問題無法在單機上進行運算解決;
(3)這100W維特徵中必然存在一些幾乎不重要的特徵,這時,我們就需要用降維演算法進行降維,降維的目的就是去掉大量的不重要的特徵,以簡化運算;
(4)在此例中,可以使用SVD(或SVD++)演算法對矩陣進行降維
圖片相似度
(1)通常,進行圖片相似度判斷首先會將圖片通過傅里葉變換轉換成數值代表的矩陣,矩陣代表著該圖片,一般來說矩陣維數越高越精確
(2)同樣,維數過高的情況下,相似度計算成本很高,因此同樣需要降維,在圖片相似度識別中常用的降維演算法是PCA演算法;
總之,降維的目的就是減少特徵的維數,減少運算的成本。
以上皆為我的拙見,如有疑義請指正。
3. 數據挖掘與演算法是什麼關系
數據挖掘演算法是根據數據創建數據挖掘模型的一組試探法和計算。
數據挖掘通常與計算機科學有關,並通過統計、在線分析處理、情報檢索、機器學習、專家系統(依靠過去的經驗法則)和模式識別等諸多方法來實現上述目標。演算法是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。數據挖掘演算法是根據數據創建數據挖掘模型的一組試探法和計算。 為了創建模型,演算法將首先分析您提供的數據,並查找特定類型的模式和趨勢。演算法使用此分析的結果來定義用於創建挖掘模型的最佳參數。然後,這些參數應用於整個數據集,以便提取可行模式和詳細統計信息。
關於數據挖掘的相關學習,推薦CDA數據師的相關課程,課程內容兼顧培養解決數據挖掘流程問題的橫向能力以及解決數據挖掘演算法問題的縱向能力。要求學生具備從數據治理根源出發的思維,通過數字化工作方法來探查業務問題,通過近因分析、宏觀根因分析等手段,再選擇業務流程優化工具還是演算法工具,而非「遇到問題調演算法包」。真正理解商業思維,項目思維,能夠遇到問題解決問題。點擊預約免費試聽課