熱線電話:13121318867

登錄
首頁精彩閱讀SAS數據挖掘實戰篇【三】
SAS數據挖掘實戰篇【三】
2016-04-09
收藏

SAS數據挖掘實戰篇【三】

數據挖掘概念到SAS EM模塊和大概的流程介紹完之后,下面的規劃是【SAS關聯規則案例】【SAS聚類】【SAS預測】三個案例的具體操作步驟,【SAS的可視化技術】和【SAS的一些技巧和代碼】,至于像SAS的數據導入導出數據處理等一些基本的代碼,不作大的講解。到時候會穿插在每周日常里進行介紹,只有多操作才能熟練。

貴在平時實踐和堅持!


OK,廢話不多說,今天主要寫這篇“SAS數據挖掘實戰篇【三】”主要介紹,SAS的關聯規則應用數據挖掘。

1 關聯規則

1.1起源

關聯規則雖然來源于POS中,但是可以應用于很多領域。關聯規則的應用還包括商場的顧客購物分析、商品廣告郵寄分析、網絡故障分析等。沃爾瑪零售商的“尿布與啤酒”的故事是關聯規則挖掘的一個成功典型案例??偛课挥诿绹⒖仙莸腤al*Mart擁有世界上最大的數據倉庫系統,它利用數據挖掘工具對數據倉庫中的原始交易數據進行分析,得到了一個意外發現:跟尿布一起購買最多的商品竟然是啤酒。如果不是借助于數據倉庫數據挖掘,商家決不可能發現這個隱藏在背后的事實:在美國,一些年輕的父親下班后經常要到超市去買嬰兒尿布,而他們中有30%~40%的人同時也為自己買一些啤酒。有了這個發現后,超市調整了貨架的擺放,把尿布和啤酒放在一起,明顯增加了銷售額。

1.2基本思想

關聯規則挖掘技術可以發現不同商品在消費者購買過程中的相關性。給定一組事務集合,其中每個事務是一個項目集;一個關聯規則是形如X ->Y 的蘊涵式, X 和Y 表示項目集,且X ∩ Y = Φ, X 和Y 分別稱為關聯規則X-> Y 的前提和結論。規則X->Y 的支持度(Support) 是事務集中包含X 和Y 的事務數與所有事務數之比,記為support(X->Y) ;規則X->Y 的置信度(Confidence) 是指包含X和Y 的事務數與包含X 的事務數之比, 記為confidence ( X->Y) 。支持度用于衡量所發現規則的統計重要性,而置信度用于衡量關聯規則的可信程度。一般來說,只有支持度和置信度均高的關聯規則才可能是消費者感興趣的、有用的規則。

2 Apriori算法

2.1算法原理

Apriori 算法是 Agrawal 等于 1994 年提出的一個挖掘顧客交易數據庫中項集間的關聯規則的重要方法,是迄今最有影響挖掘布爾關聯規則頻繁項集的關聯規則算法。該關聯規則在分類上屬于單維、單層、布爾關聯規則。

Apriori算法的基本思想是通過對數據庫D的多次掃描來發現所有的頻繁項集。在第k次掃描中只考慮具有同一長度k的所有項集。在第1趟掃描中,Apriori算法計算I中所有單個項的支持度,生成所有長度為1的頻繁項集。在后續的掃描中,首先以前一次所發現的所有頻繁項集為基礎,生成所有新的候選項集(Candidate Itemsets),即潛在的頻繁項集,然后掃描數據庫D,計算這些候選項集的支持度,最后確定候選項集中哪一些真正成為頻繁項集。重復上述過程直到再也發現不了新的頻繁項集。算法高效的關鍵在于生成較小的候選項集,也就是盡可能不生成和計算那些不可能成為頻繁項集的候選項集。

2.2算法步驟

Apriori 算法主要分成兩步:首先找出數據中所有的頻繁項集,這些項集出現的頻繁性要大于或等于最小支持度。然后由頻繁項集產生強關聯規則,這些規則必須滿足最小支持度和最小置信度。算法的總體性能由第一步決定,第二步相對容易實現。

Lk:k維頻繁項目集的集合,該集合中的每個元素包含兩部分:項目集本身、項目集的支持度。

Ck:k維候選項目集集合,是k維頻繁項目集集合的超集,也就是潛在的頻繁項目集集合,該集合中的每個元素也包含兩部分:項目集本身、項目集的支持度。任何項目集的元素都按某個標準(例如字典順序)進行排序。包括k個項目(k個項目為:c[1],c[2],?,c[k])的項目集c用如下形式來表示:c[1],c[2],?,c[k],由于c已經排序,則有:c[1]<c[2]<?<c[k]。


a).Apriori算法描述

輸入:交易數據庫D,最小支持度minsup

輸出:頻繁項目集集合Answer

(1)Begin

(2)L1=(large 1-itemsets);

(3)For(k=2;Lk-1≠ ;k++)Do

(4)Ck=apriori_gen(Lk-1);//得到新候選項目集。

(5)For all transactionst∈D Do

(6)Ct=subset(Ck,t);//計算屬于t的候選項目集。

(7)For all candidates c∈Ct Do

(8)c.count++;

(9)EndFor

(10)EndFor

(11)Lk={c∈Ck|c.count≥minsup}

(12)EndFor

(13)Answer=Uk Lk;

(14)End


b).apriori_gen算法描述

輸入:Lk-1

輸出:Lk

(1)Begin

(2)For each p∈Lk-1 Do

(3)For each q∈Lk-1 Do

(4)If p.item1=q.item1,?,p.itemk-2=q.itemk-2,p.itemk-1<q.itemk-1

(5)Then c=p.item1,p.item2,?,p.itemk-1,q.itemk-1;EndIf

(6)If (k-1)-subset s Lk-1 of c

(7)Then delete c;

(8)Else insert c into Ck;EndIf

(9)EndFor

(10)EndFor

(11)Return Lk

(12)End


2.3算法分析與改進

如果在交易數據集合中包含的不同的項目的數量為n個,以Apriori為基礎的頻繁項目集發現算法將要計算2n項目集。當n比較大時,將會產生組合爆炸,實際上這將是NP難的問題。

J.S.Park等人提出了一個基于Hash技術的DHP算法,利用Hash技術有效改進候選項目集的生成過程,減少I/O的存取時間,其效率高于Apriori算法。雖然Sampling算法、Partition算法、DIC算法等都試圖減少對交易數據集合的搜索次數,但仍有很多缺點。Sampling算法從原數據集合中隨機抽樣出一部分樣本,利用樣本來挖掘關聯規則以減少算法的搜索次數,但是由于數據集合中經常存在數據分布不均勻的情況,所以隨機抽樣根本就無法保證能夠抽取到有代表性的樣本;Partition算法雖然通過對數據集合分區分別挖掘,最后進行匯總的方法來減輕I/O的負擔,事實上它是增加了CPU的負擔。

3 SAS 關聯規則案例

1問題背景

考慮下面案例,一家商店希望通過客戶的基本購買信息了解客戶購買某商品同時還購買其他哪些商品。這就是常見的購物籃分析。

ASSOCCS數據集中1001位客戶購買商品的信息。主要有以下商品信息:1001位顧客購買了7個項目的商品,產生了7007行數據。每一行數據表示一條交易信息。


2建立初始流程圖

Clipboard Image.png

3設置輸入數據源結點

打開輸入數據源結點

從SAMPSIO庫中選擇ASSOCS數據集

點擊變量選項卡

設置customer的模型角色為id

設置time的模型角色為rejected

設置product的模型角色為target

關閉輸入數據源結點

Clipboard Image.png

4設置關聯規則結點

打開關聯規則結點,選擇general選項卡,修改結點信息。

5理解和選擇分析模式

Clipboard Image.png

默認的分析模式是by context,它根據輸入數據源的結點信息選擇合適的分析方法。如果輸入數據集包括:

一個id變量和target變量,該結點自動執行關聯分析。

一個序列變量包括使用的狀態,該結點執行序列分析。序列分析需要定義一個序列模型角色的變量。

另外,還可以設置最小支持度,項目的最大數目和最小置信度。

Clipboard Image.png

在規則選項卡中包含每條規則的信息。并且,還可以根據提升度,支持度和置信度的升序或者降序進行排列。

定制化

在SAS EM中計算一個項與其他項之間的關聯規則。

1創建一個新的數據集或者修改原數據集使它至少包含以下三個變量:

一個唯一的ID標識,一個目標變量,一個人工變量(如果值為coke,則設置為1否則設置為2)。

2執行序列模式發現。

此處以coke為例,得到轉化后的數據集

data tmp;

set sampsio.assocs;

if product = 'coke' then visit = 1 ;

else visit = 2;

run;

Clipboard Image.png

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢