
電商數(shù)據(jù)挖掘之關聯(lián)算法_數(shù)據(jù)分析師考試
所謂關聯(lián),反映的是一個事件和其他事件之間依賴或關聯(lián)的知識。當我們查找英文文獻的時候,可以發(fā)現(xiàn)有兩個英文詞都能形容關聯(lián)的含義。第一個是相關性relevance,第二個是關聯(lián)性association,兩者都可以用來描述事件之間的關聯(lián)程度。其中前者主要用在互聯(lián)網的內容和文檔上,比如搜索引擎算法中文檔之間的關聯(lián)性,我們采用的詞是relevance;而后者往往用在實際的事物之上,比如電子商務網站上的商品之間的關聯(lián)度我們是用association來表示的,而關聯(lián)規(guī)則是用association rules來表示的。
如果兩項或多項屬性之間存在關聯(lián),那么其中一項的屬性值就可以依據(jù)其他屬性值進行預測。簡單地來說,關聯(lián)規(guī)則可以用這樣的方式來表示:A→B,其中A被稱為前提或者左部(LHS),而B被稱為結果或者右部(RHS)。如果我們要描述關于尿布和啤酒的關聯(lián)規(guī)則(買尿布的人也會買啤酒),那么我們可以這樣表示:買尿布→買啤酒。
關聯(lián)算法的兩個概念
在關聯(lián)算法中很重要的一個概念是支持度(Support),也就是數(shù)據(jù)集中包含某幾個特定項的概率。比如在1000次的商品交易中同時出現(xiàn)了啤酒和尿布的次數(shù)是50次,那么此關聯(lián)的支持度為5%。
和關聯(lián)算法很相關的另一個概念是置信度(Confidence),也就是在數(shù)據(jù)集中已經出現(xiàn)A時,B發(fā)生的概率,置信度的計算公式是 :A與B同時出現(xiàn)的概率/A出現(xiàn)的概率。
數(shù)據(jù)關聯(lián)是數(shù)據(jù)庫中存在的一類重要的可被發(fā)現(xiàn)的知識。若兩個或多個變量的取值之間存在某種規(guī)律性,就稱為關聯(lián)。關聯(lián)可分為簡單關聯(lián)、時序關聯(lián)、因果關聯(lián)等。關聯(lián)分析的目的是找出數(shù)據(jù)庫中隱藏的關聯(lián)網。有時并不知道數(shù)據(jù)庫中數(shù)據(jù)的關聯(lián)函數(shù),或者即使知道也是不確定的,因此關聯(lián)分析生成的規(guī)則帶有置信度。
關聯(lián)規(guī)則挖掘發(fā)現(xiàn)大量數(shù)據(jù)中項集之間有趣的關聯(lián)或相關聯(lián)系。它在數(shù)據(jù)挖掘中是一個重要的課題,最近幾年被業(yè)界所廣泛研究。
關聯(lián)規(guī)則挖掘的一個典型例子是購物籃分析。關聯(lián)規(guī)則研究有助于發(fā)現(xiàn)交易數(shù)據(jù)庫中不同商品(項)之間的聯(lián)系,找出顧客購買行為模式,如購買了某一商品對購買其他商品的影響。分析結果可以應用于商品貨架布局、貨存安排以及根據(jù)購買模式對用戶進行分類。
規(guī)則的發(fā)現(xiàn)過程可分為如下兩步:
第一步是迭代識別所有的頻繁項目集(Frequent Itemsets),要求頻繁項目集的支持度不低于用戶設定的最低值;
第二步是從頻繁項目集中構造置信度不低于用戶設定的最低值的規(guī)則,產生關聯(lián)規(guī)則。識別或發(fā)現(xiàn)所有頻繁項目集是關聯(lián)規(guī)則發(fā)現(xiàn)算法的核心,也是計算量最大的部分。
支持度和置信度兩個閾值是描述關聯(lián)規(guī)則的兩個最重要的概念。一項目組出現(xiàn)的頻率稱為支持度,反映關聯(lián)規(guī)則在數(shù)據(jù)庫中的重要性。而置信度衡量關聯(lián)規(guī)則的可信程度。如果某條規(guī)則同時滿足最小支持度(min-support)和最小置信度(min-confidence),則稱它為強關聯(lián)規(guī)則。
關聯(lián)規(guī)則數(shù)據(jù)挖掘階段
第一階段必須從原始資料集合中,找出所有高頻項目組(Large Itemsets)。高頻的意思是指某一項目組出現(xiàn)的頻率相對于所有記錄而言,必須達到某一水平。以一個包含A與B兩個項目的2-itemset為例,我們可以求得包含{A,B}項目組的支持度,若支持度大于等于所設定的最小支持度(Minimum Support)門檻值時,則{A,B}稱為高頻項目組。一個滿足最小支持度的k-itemset,則稱為高頻k-項目組(Frequent k-itemset),一般表示為Large k或Frequent k。算法并從Large k的項目組中再試圖產生長度超過k的項目集Large k+1,直到無法再找到更長的高頻項目組為止。
關聯(lián)規(guī)則挖掘的第二階段是要產生關聯(lián)規(guī)則。從高頻項目組產生關聯(lián)規(guī)則,是利用前一步驟的高頻k-項目組來產生規(guī)則,在最小可信度(Minimum Confidence)的條件門檻下,若一規(guī)則所求得的可信度滿足最小可信度,則稱此規(guī)則為關聯(lián)規(guī)則。
例如:經由高頻k-項目組{A,B}所產生的規(guī)則,若其可信度大于等于最小可信度,則稱{A,B}為關聯(lián)規(guī)則。
就“啤酒+尿布”這個案例而言,使用關聯(lián)規(guī)則挖掘技術,對交易資料庫中的記錄進行資料挖掘,首先必須要設定最小支持度與最小可信度兩個門檻值,在此假設最小支持度min-support=5% 且最小可信度min-confidence=65%。因此符合需求的關聯(lián)規(guī)則將必須同時滿足以上兩個條件。若經過挖掘所找到的關聯(lián)規(guī)則 {尿布,啤酒}滿足下列條件,將可接受{尿布,啤酒} 的關聯(lián)規(guī)則。用公式可以描述為:
Support(尿布,啤酒)≥5% and Confidence(尿布,啤酒)≥65%。
其中,Support(尿布,啤酒)≥5%于此應用范例中的意義為:在所有的交易記錄資料中,至少有5%的交易呈現(xiàn)尿布與啤酒這兩項商品被同時購買的交易行為。Confidence(尿布,啤酒)≥65%于此應用范例中的意義為:在所有包含尿布的交易記錄資料中,至少有65%的交易會同時購買啤酒。
因此,今后若有某消費者出現(xiàn)購買尿布的行為,我們將可推薦該消費者同時購買啤酒。這個商品推薦的行為則是根據(jù){尿布,啤酒}關聯(lián)規(guī)則而定,因為就過去的交易記錄而言,支持了“大部分購買尿布的交易,會同時購買啤酒”的消費行為。
從上面的介紹還可以看出,關聯(lián)規(guī)則挖掘通常比較適用于記錄中的指標取離散值的情況。
如果原始數(shù)據(jù)庫中的指標值是取連續(xù)的數(shù)據(jù),則在關聯(lián)規(guī)則挖掘之前應該進行適當?shù)臄?shù)據(jù)離散化(實際上就是將某個區(qū)間的值對應于某個值),數(shù)據(jù)的離散化是數(shù)據(jù)挖掘前的重要環(huán)節(jié),離散化的過程是否合理將直接影響關聯(lián)規(guī)則的挖掘結果。
這一期則以數(shù)據(jù)實例來看最著名的Apriori關聯(lián)算法的演算過程。從一家公司的銷售記錄中我們找到以下8條消費記錄,并以3作為最小支持度,也就是說出現(xiàn)頻率在3次以下的記錄是被我們所忽略的。
所有滿足最小支持度3的1項頻集如下,其中的支持度是指該產品在整個數(shù)據(jù)集中出現(xiàn)的次數(shù)。比如牛奶出現(xiàn)了5次,而冰淇淋出現(xiàn)了3次。
遞歸執(zhí)行,所有滿足最小支持度3的2項頻集如下,這其中出現(xiàn)最多的頻集是{牛奶,面包}和{面包,果醬},各自出現(xiàn)了4次。
再次遞歸執(zhí)行,所有滿足最小支持度3的3項頻集只剩下一條:
那么{牛奶,果醬,面包}就是我們要的滿足最小支持度3的3項頻集,也就是說牛奶、果醬和面包這三個商品是最經常被一起購買的。
概念層次的數(shù)據(jù)挖掘
在研究挖掘關聯(lián)規(guī)則的過程中,許多學者發(fā)現(xiàn)在實際應用中,對于很多應用來說,由于數(shù)據(jù)分布的分散性,數(shù)比較少,所以很難在數(shù)據(jù)最細節(jié)的層次上發(fā)現(xiàn)一些強關聯(lián)規(guī)則。要想在原始的概念層次上發(fā)現(xiàn)強的(strong)和有意義的(interesting)關聯(lián)規(guī)則是比較困難的,因為好多項集往往沒有足夠的支持數(shù)。
當我們引入概念層次后,就可以在較高的層次上進行挖掘。雖然較高層次上得出的規(guī)則可能是更普通的信息,但是對于一個用戶來說是普通的信息,對于另一個用戶卻未必如此。所以數(shù)據(jù)挖掘應該提供這樣一種在多個層次上進行挖掘的功能。
概念層次在要挖掘的數(shù)據(jù)庫中經常是存在的,比如在一個超市中會存在這樣的概念層次:蒙牛牌牛奶是牛奶,伊利牌牛奶是牛奶,王子牌餅干是餅干,康師傅牌餅干是餅干等。
如果我們只是在數(shù)據(jù)基本層發(fā)掘關系,{蒙牛牌牛奶,王子牌餅干},{蒙牛牌牛奶,康師傅牌餅干},{伊利牌牛奶,王子牌餅干},{伊利牌牛奶,康師傅牌餅干}都不符合最小支持度。不過如果我們上升一個層級,會發(fā)現(xiàn){牛奶,餅干} 的關聯(lián)規(guī)則是有一定支持度的。
我們稱高層次的項是低層次項的父親層次(parent),這種概念層次關系通常用一個DAG(directed acyclic graph,有向無環(huán)圖)來表示。所謂有向無環(huán)圖是指,任意一條邊有方向,且不存在環(huán)路的圖。這樣我們就可以在較高的概念層次上發(fā)現(xiàn)關聯(lián)規(guī)則。
支持度的設置策略
根據(jù)規(guī)則中涉及的層次和多層關聯(lián)的規(guī)則,我們可以把關聯(lián)規(guī)則分為同層關聯(lián)規(guī)則和層間關聯(lián)規(guī)則。多層關聯(lián)規(guī)則的挖掘基本上可以沿用“支持度—置信度”的框架。不過,在支持度設置的問題上有一些要考慮的東西。
同層關聯(lián)規(guī)則可以采用兩種支持度策略:
統(tǒng)一的最小支持度。對于不同的層次,都使用同一個最小支持度。這樣對于用戶和算法實現(xiàn)來說都比較容易,但是弊端也是顯而易見的。
遞減的最小支持度。每個層次都有不同的最小支持度,較低層次的最小支持度相對較小。同時還可以利用上層挖掘得到的信息進行一些過濾的工作。層間關聯(lián)規(guī)則考慮最小支持度的時候,應該根據(jù)較低層次的最小支持度來定。
以上我們討論的基本上都是同一個字段的值之間的關系,比如用戶購買的物品。換句話說就是在單維或者叫維內的關聯(lián)規(guī)則,這些規(guī)則很多都是在交易數(shù)據(jù)庫中挖掘的。
但是對于實際應用來說,多維的關聯(lián)規(guī)則可能是更加有價值的。
同時,在挖掘維間關聯(lián)規(guī)則和混合維關聯(lián)規(guī)則的時候,還要考慮不同的字段種類,是分類型數(shù)據(jù)還是數(shù)值型數(shù)據(jù)等等。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉換:從基礎用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結構數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結構數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結構數(shù)據(jù)特征價值的專業(yè)核心 表結構數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結構化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結構數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結構數(shù)據(jù)(以 “行 - 列” 存儲的結構化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結構數(shù)據(jù)價值的核心操盤手 表格結構數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到決策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10