
SAS數(shù)據(jù)挖掘實(shí)戰(zhàn)篇【三】
從數(shù)據(jù)挖掘概念到SAS EM模塊和大概的流程介紹完之后,下面的規(guī)劃是【SAS關(guān)聯(lián)規(guī)則案例】【SAS聚類】【SAS預(yù)測(cè)】三個(gè)案例的具體操作步驟,【SAS的可視化技術(shù)】和【SAS的一些技巧和代碼】,至于像SAS的數(shù)據(jù)導(dǎo)入導(dǎo)出數(shù)據(jù)處理等一些基本的代碼,不作大的講解。到時(shí)候會(huì)穿插在每周日常里進(jìn)行介紹,只有多操作才能熟練。
貴在平時(shí)實(shí)踐和堅(jiān)持!
OK,廢話不多說,今天主要寫這篇“SAS數(shù)據(jù)挖掘實(shí)戰(zhàn)篇【三】”主要介紹,SAS的關(guān)聯(lián)規(guī)則應(yīng)用數(shù)據(jù)挖掘。
關(guān)聯(lián)規(guī)則雖然來源于POS中,但是可以應(yīng)用于很多領(lǐng)域。關(guān)聯(lián)規(guī)則的應(yīng)用還包括商場(chǎng)的顧客購(gòu)物分析、商品廣告郵寄分析、網(wǎng)絡(luò)故障分析等。沃爾瑪零售商的“尿布與啤酒”的故事是關(guān)聯(lián)規(guī)則挖掘的一個(gè)成功典型案例??偛课挥诿绹?guó)阿肯色州的Wal*Mart擁有世界上最大的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),它利用數(shù)據(jù)挖掘工具對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的原始交易數(shù)據(jù)進(jìn)行分析,得到了一個(gè)意外發(fā)現(xiàn):跟尿布一起購(gòu)買最多的商品竟然是啤酒。如果不是借助于數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘,商家決不可能發(fā)現(xiàn)這個(gè)隱藏在背后的事實(shí):在美國(guó),一些年輕的父親下班后經(jīng)常要到超市去買嬰兒尿布,而他們中有30%~40%的人同時(shí)也為自己買一些啤酒。有了這個(gè)發(fā)現(xiàn)后,超市調(diào)整了貨架的擺放,把尿布和啤酒放在一起,明顯增加了銷售額。
關(guān)聯(lián)規(guī)則挖掘技術(shù)可以發(fā)現(xiàn)不同商品在消費(fèi)者購(gòu)買過程中的相關(guān)性。給定一組事務(wù)集合,其中每個(gè)事務(wù)是一個(gè)項(xiàng)目集;一個(gè)關(guān)聯(lián)規(guī)則是形如X ->Y 的蘊(yùn)涵式, X 和Y 表示項(xiàng)目集,且X ∩ Y = Φ, X 和Y 分別稱為關(guān)聯(lián)規(guī)則X-> Y 的前提和結(jié)論。規(guī)則X->Y 的支持度(Support) 是事務(wù)集中包含X 和Y 的事務(wù)數(shù)與所有事務(wù)數(shù)之比,記為support(X->Y) ;規(guī)則X->Y 的置信度(Confidence) 是指包含X和Y 的事務(wù)數(shù)與包含X 的事務(wù)數(shù)之比, 記為confidence ( X->Y) 。支持度用于衡量所發(fā)現(xiàn)規(guī)則的統(tǒng)計(jì)重要性,而置信度用于衡量關(guān)聯(lián)規(guī)則的可信程度。一般來說,只有支持度和置信度均高的關(guān)聯(lián)規(guī)則才可能是消費(fèi)者感興趣的、有用的規(guī)則。
Apriori 算法是 Agrawal 等于 1994 年提出的一個(gè)挖掘顧客交易數(shù)據(jù)庫(kù)中項(xiàng)集間的關(guān)聯(lián)規(guī)則的重要方法,是迄今最有影響挖掘布爾關(guān)聯(lián)規(guī)則頻繁項(xiàng)集的關(guān)聯(lián)規(guī)則算法。該關(guān)聯(lián)規(guī)則在分類上屬于單維、單層、布爾關(guān)聯(lián)規(guī)則。
Apriori算法的基本思想是通過對(duì)數(shù)據(jù)庫(kù)D的多次掃描來發(fā)現(xiàn)所有的頻繁項(xiàng)集。在第k次掃描中只考慮具有同一長(zhǎng)度k的所有項(xiàng)集。在第1趟掃描中,Apriori算法計(jì)算I中所有單個(gè)項(xiàng)的支持度,生成所有長(zhǎng)度為1的頻繁項(xiàng)集。在后續(xù)的掃描中,首先以前一次所發(fā)現(xiàn)的所有頻繁項(xiàng)集為基礎(chǔ),生成所有新的候選項(xiàng)集(Candidate Itemsets),即潛在的頻繁項(xiàng)集,然后掃描數(shù)據(jù)庫(kù)D,計(jì)算這些候選項(xiàng)集的支持度,最后確定候選項(xiàng)集中哪一些真正成為頻繁項(xiàng)集。重復(fù)上述過程直到再也發(fā)現(xiàn)不了新的頻繁項(xiàng)集。算法高效的關(guān)鍵在于生成較小的候選項(xiàng)集,也就是盡可能不生成和計(jì)算那些不可能成為頻繁項(xiàng)集的候選項(xiàng)集。
Apriori 算法主要分成兩步:首先找出數(shù)據(jù)中所有的頻繁項(xiàng)集,這些項(xiàng)集出現(xiàn)的頻繁性要大于或等于最小支持度。然后由頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則,這些規(guī)則必須滿足最小支持度和最小置信度。算法的總體性能由第一步?jīng)Q定,第二步相對(duì)容易實(shí)現(xiàn)。
Lk:k維頻繁項(xiàng)目集的集合,該集合中的每個(gè)元素包含兩部分:項(xiàng)目集本身、項(xiàng)目集的支持度。
Ck:k維候選項(xiàng)目集集合,是k維頻繁項(xiàng)目集集合的超集,也就是潛在的頻繁項(xiàng)目集集合,該集合中的每個(gè)元素也包含兩部分:項(xiàng)目集本身、項(xiàng)目集的支持度。任何項(xiàng)目集的元素都按某個(gè)標(biāo)準(zhǔn)(例如字典順序)進(jìn)行排序。包括k個(gè)項(xiàng)目(k個(gè)項(xiàng)目為:c[1],c[2],?,c[k])的項(xiàng)目集c用如下形式來表示:c[1],c[2],?,c[k],由于c已經(jīng)排序,則有:c[1]<c[2]<?<c[k]。
a).Apriori算法描述
輸入:交易數(shù)據(jù)庫(kù)D,最小支持度minsup
輸出:頻繁項(xiàng)目集集合Answer
(1)Begin
(2)L1=(large 1-itemsets);
(3)For(k=2;Lk-1≠ ;k++)Do
(4)Ck=apriori_gen(Lk-1);//得到新候選項(xiàng)目集。
(5)For all transactionst∈D Do
(6)Ct=subset(Ck,t);//計(jì)算屬于t的候選項(xiàng)目集。
(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
如果在交易數(shù)據(jù)集合中包含的不同的項(xiàng)目的數(shù)量為n個(gè),以Apriori為基礎(chǔ)的頻繁項(xiàng)目集發(fā)現(xiàn)算法將要計(jì)算2n項(xiàng)目集。當(dāng)n比較大時(shí),將會(huì)產(chǎn)生組合爆炸,實(shí)際上這將是NP難的問題。
J.S.Park等人提出了一個(gè)基于Hash技術(shù)的DHP算法,利用Hash技術(shù)有效改進(jìn)候選項(xiàng)目集的生成過程,減少I/O的存取時(shí)間,其效率高于Apriori算法。雖然Sampling算法、Partition算法、DIC算法等都試圖減少對(duì)交易數(shù)據(jù)集合的搜索次數(shù),但仍有很多缺點(diǎn)。Sampling算法從原數(shù)據(jù)集合中隨機(jī)抽樣出一部分樣本,利用樣本來挖掘關(guān)聯(lián)規(guī)則以減少算法的搜索次數(shù),但是由于數(shù)據(jù)集合中經(jīng)常存在數(shù)據(jù)分布不均勻的情況,所以隨機(jī)抽樣根本就無法保證能夠抽取到有代表性的樣本;Partition算法雖然通過對(duì)數(shù)據(jù)集合分區(qū)分別挖掘,最后進(jìn)行匯總的方法來減輕I/O的負(fù)擔(dān),事實(shí)上它是增加了CPU的負(fù)擔(dān)。
考慮下面案例,一家商店希望通過客戶的基本購(gòu)買信息了解客戶購(gòu)買某商品同時(shí)還購(gòu)買其他哪些商品。這就是常見的購(gòu)物籃分析。
ASSOCCS數(shù)據(jù)集中1001位客戶購(gòu)買商品的信息。主要有以下商品信息:1001位顧客購(gòu)買了7個(gè)項(xiàng)目的商品,產(chǎn)生了7007行數(shù)據(jù)。每一行數(shù)據(jù)表示一條交易信息。
打開輸入數(shù)據(jù)源結(jié)點(diǎn)
從SAMPSIO庫(kù)中選擇ASSOCS數(shù)據(jù)集
點(diǎn)擊變量選項(xiàng)卡
設(shè)置customer的模型角色為id
設(shè)置time的模型角色為rejected
設(shè)置product的模型角色為target
關(guān)閉輸入數(shù)據(jù)源結(jié)點(diǎn)
打開關(guān)聯(lián)規(guī)則結(jié)點(diǎn),選擇general選項(xiàng)卡,修改結(jié)點(diǎn)信息。
默認(rèn)的分析模式是by context,它根據(jù)輸入數(shù)據(jù)源的結(jié)點(diǎn)信息選擇合適的分析方法。如果輸入數(shù)據(jù)集包括:
一個(gè)id變量和target變量,該結(jié)點(diǎn)自動(dòng)執(zhí)行關(guān)聯(lián)分析。
一個(gè)序列變量包括使用的狀態(tài),該結(jié)點(diǎn)執(zhí)行序列分析。序列分析需要定義一個(gè)序列模型角色的變量。
另外,還可以設(shè)置最小支持度,項(xiàng)目的最大數(shù)目和最小置信度。
在規(guī)則選項(xiàng)卡中包含每條規(guī)則的信息。并且,還可以根據(jù)提升度,支持度和置信度的升序或者降序進(jìn)行排列。
定制化
在SAS EM中計(jì)算一個(gè)項(xiàng)與其他項(xiàng)之間的關(guān)聯(lián)規(guī)則。
1創(chuàng)建一個(gè)新的數(shù)據(jù)集或者修改原數(shù)據(jù)集使它至少包含以下三個(gè)變量:
一個(gè)唯一的ID標(biāo)識(shí),一個(gè)目標(biāo)變量,一個(gè)人工變量(如果值為coke,則設(shè)置為1否則設(shè)置為2)。
2執(zhí)行序列模式發(fā)現(xiàn)。
此處以coke為例,得到轉(zhuǎn)化后的數(shù)據(jù)集
data tmp;
set sampsio.assocs;
if product = 'coke' then visit = 1 ;
else visit = 2;
run;
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10