使用R語言進行購物籃分析(Market Basket Analysis)

更新於 發佈於 閱讀時間約 6 分鐘

在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。購物籃分析最經典的就是啤酒與尿布的例子了!

世界最大的零售商沃爾瑪(Wal-mart)就運用關聯分析的技術,從每日大量的商品交易資料中進行消費者購買商品間的關聯分析,結果竟然意外發現星期四晚上通常同時購買啤酒與尿布。

現在就來看看要如何利用R語言進行關聯分析吧!

首先,先載入關聯分析所需要用到的arules相關套件:

install.packages("arules")
library(arules)
install.packages("arulesViz")
library(arulesViz)

這次資料的載點:https://1drv.ms/u/s!Ai2AWJ0icWFvhHj-s3ps-jIJjvrv

下載後打開該資料檔,會發現它跟我們平常用來分析的資料檔並不一樣,是屬於交易資料形式。

因此我們必須採用read.transaction來讀取(交易資料與一般data frame不同,為每次買了甚麼商品)

groceries = read.transactions("C:\\Users\\user\\Desktop\\groceries.csv",sep=",")

讀取完後可以使用summary函式看一下資料的摘要。

summary(groceries)

執行結果如下,可以發現統計出了幾個比較頻繁出現的字詞,

raw-image

接下來呢,我們用inspect函式來看前面五筆資料。

inspect(groceries[1:5])
raw-image

除了看商品品項之外,也可以使用size函式,來看單次購買的品項有幾種商品。

接著呢,我們再利用itemFrequency函式,去列出每一項品項佔的比例,藉由這個函數,也可以找出出現頻率比較高的商品。

itemFrequency(groceries)
raw-image

接下來就是重頭戲拉!  看到密密麻麻的比例我們要怎麼讓它變得比較好理解呢?

因此我們接著來進行畫圖的動作。

用itemFrequencyPlot繪出產品佔的比例圖,support參數是支持度的意思(通常會默認是0.1,如果不使用的話,則會列出所有產品品項,會很亂喔。)

itemFrequencyPlot(groceries,topN = 10)
itemFrequencyPlot(groceries,topN = 10,type = "absolute")
itemFrequencyPlot(groceries,topN = 10,horiz = T,
main = "Item Frequency",xlab = "Relative Frequency")

itemFrequencyPlot(groceries,support = 0.1,
main = "Item Frequency with S = 0.1",ylab = "Relative Frequency")

跑完code後圖就會出來啦!

一看就知道原來whole milk出現的頻率是最高的

raw-image

再來,便是載入在關聯分析中最重要的演算法之一 —> Apriori:

Apriori是最經典的關聯分析挖掘演算法,原理清晰且實現方便,可以說是學習關聯分析的入門演算法,但效率低;而Eclat演算法則在運行效率方面有所提升。

載入以下程式碼:

apriori(groceries)

rule1 = apriori(groceries,parameter = list(support = 0.006,confidence = 0.3))
summary(rule1)

apriori演算法大概是這樣運作的,我們必須要設定support以及confidence:

  • 支持度(support):「規則」在資料內具有普遍性,也就是這些 A 跟 B 同時出現的機率多少。
  • 信賴度(confidence):「規則」要有一定的信心水準,也就是當購買 A 狀態下,也會購買 B 的條件機率。

等rule跑出來之後,要觀察需要使用inspect()的函式:

inspect(rule1[1:5])

執行結果如下,

lhs=>rhs 代表買左邊也會買右邊的意思,而支持度與信賴度,則分別代表了普遍性與信心水準。

raw-image

例如,第一個關聯規則可以解釋為,「若某人單次消費購買的是pot plants=> 也會購買whole milk」

而lift=1.5 > 1,表示了這個規則相當具有正相關。

除此之外,我們也可以針對特定商品產生關連規則。

例如: 用yogurt這個產品來產生一個相關聯的rules

其中%pin%"yog",代表的意思是尋找找商品名稱有 “yog"的品項,

yogurtr1 = subset(rule1,items %pin% "yog")
summary(yogurtr1)
inspect(yogurtr1[1:15])

執行結果:

raw-image

關於關聯分析就先講到這裡啦,在資料的世界裡,有太多太多關聯等著我們去挖掘,每個細微的地方,都可能隱藏著商機,這也是為甚麼有越來越多公司花大錢也要進行資料探勘,常見的電影推薦、購物網站商品推薦,其實都是關聯分析的運用。

留言
avatar-img
留言分享你的想法!
avatar-img
格蘭特的沙龍
14會員
17內容數
還在為不知道怎麼面試而煩惱嗎? 還在為苦無面試機會而沮喪嗎? 別擔心~讓我們一起面對! 在專題中,我將以自身經驗傳授如何撰寫履歷以及分享面試經驗。
格蘭特的沙龍的其他內容
2023/10/26
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第八篇。 這篇將繼續分享上一篇在遊戲橘子的面試經驗。
Thumbnail
2023/10/26
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第八篇。 這篇將繼續分享上一篇在遊戲橘子的面試經驗。
Thumbnail
2023/07/18
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第七篇。 格蘭特這次要分享的是在遊戲領域中的佼佼者,自產及代理多種知名遊戲的遊戲橘子(Gamania)。 本次機會是由 Headhunter 在 LinkedIn 主動聯繫,職位是資深後端工程師。 由於篇
Thumbnail
2023/07/18
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第七篇。 格蘭特這次要分享的是在遊戲領域中的佼佼者,自產及代理多種知名遊戲的遊戲橘子(Gamania)。 本次機會是由 Headhunter 在 LinkedIn 主動聯繫,職位是資深後端工程師。 由於篇
Thumbnail
2023/04/06
歡迎來到格蘭特的私房好書,本文是專題系列文的第二篇。 因工作上有些事情需要處理,讓這個專題延宕了幾個月,希望大家不要見怪 :D。 今天要與大家一同閱讀的是 Annette Simmons 所著的《你的團隊需要一個會說故事的人》。 作者:Annette Simmons (安奈特.西蒙斯) 出版社:先覺
Thumbnail
2023/04/06
歡迎來到格蘭特的私房好書,本文是專題系列文的第二篇。 因工作上有些事情需要處理,讓這個專題延宕了幾個月,希望大家不要見怪 :D。 今天要與大家一同閱讀的是 Annette Simmons 所著的《你的團隊需要一個會說故事的人》。 作者:Annette Simmons (安奈特.西蒙斯) 出版社:先覺
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
文章描述了觀察者如何從銷售數量的日線圖中,以及通過歸納統計和經濟理論進行解讀,透過時間統計分析消費者的行為特徵,以及角度數據如何關注臺灣市場的消費。
Thumbnail
文章描述了觀察者如何從銷售數量的日線圖中,以及通過歸納統計和經濟理論進行解讀,透過時間統計分析消費者的行為特徵,以及角度數據如何關注臺灣市場的消費。
Thumbnail
在大數據時代,資料為王已介紹如何改寫函式,該函式可以抓取到預設數列以外的數列資料,本篇將利用這個改寫後的函式,進行訊號改寫,讓訊號可以依據長、短週期的數列,進行行情判斷,並依些產生進場訊號。 在策略中,新增二個輸入參數(輸入參數可進行最佳化),以下簡單介紹這二個參數: LongBarCount:
Thumbnail
在大數據時代,資料為王已介紹如何改寫函式,該函式可以抓取到預設數列以外的數列資料,本篇將利用這個改寫後的函式,進行訊號改寫,讓訊號可以依據長、短週期的數列,進行行情判斷,並依些產生進場訊號。 在策略中,新增二個輸入參數(輸入參數可進行最佳化),以下簡單介紹這二個參數: LongBarCount:
Thumbnail
在交易千萬別見樹不見林 中示範如何在同一張圖表上加入不同週期的行情走勢,本篇將對MultiCharts初體驗-函式撰寫、MultiCharts初體驗-訊號撰寫 的程式進行改寫,讓程式可以讀取到多週期的K線資料。 在MC中可以用Data1、Data2、⋯⋯、Data99的指定方式,來存取圖表中的數列
Thumbnail
在交易千萬別見樹不見林 中示範如何在同一張圖表上加入不同週期的行情走勢,本篇將對MultiCharts初體驗-函式撰寫、MultiCharts初體驗-訊號撰寫 的程式進行改寫,讓程式可以讀取到多週期的K線資料。 在MC中可以用Data1、Data2、⋯⋯、Data99的指定方式,來存取圖表中的數列
Thumbnail
AND、OR、NOT 在試算表函式裡是很方便的函式。我們常用它們來做多條件判斷,搭配 IF、IFS 或常用條件式格式、資料驗證這些功能,來完成比較複雜的邏輯判斷需求。一起來看看!
Thumbnail
AND、OR、NOT 在試算表函式裡是很方便的函式。我們常用它們來做多條件判斷,搭配 IF、IFS 或常用條件式格式、資料驗證這些功能,來完成比較複雜的邏輯判斷需求。一起來看看!
Thumbnail
上一篇我們有介紹如何爬取Goodinfo的資訊並統計分析,還沒閱讀的朋友建議先行閱讀,再進入此篇章會比較容易上手唷,傳送門如下: 🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率 為什麼要做資料視覺化? 相信圖文甚至影音箱對於文字來說更為吸引我們進
Thumbnail
上一篇我們有介紹如何爬取Goodinfo的資訊並統計分析,還沒閱讀的朋友建議先行閱讀,再進入此篇章會比較容易上手唷,傳送門如下: 🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率 為什麼要做資料視覺化? 相信圖文甚至影音箱對於文字來說更為吸引我們進
Thumbnail
正所謂「套件」如其名,Pandas 運算套件在資料處理領域的受歡迎程度完全可與善於賣萌的大熊貓相媲美。當然,Pandas 的名稱其實來自經濟學術語—面板資料 (panel data)。 眾所皆知,金融領域存在巨量的資料處理與分析,而Pandas 運算套件就是當時就職於AQR Capi
Thumbnail
正所謂「套件」如其名,Pandas 運算套件在資料處理領域的受歡迎程度完全可與善於賣萌的大熊貓相媲美。當然,Pandas 的名稱其實來自經濟學術語—面板資料 (panel data)。 眾所皆知,金融領域存在巨量的資料處理與分析,而Pandas 運算套件就是當時就職於AQR Capi
Thumbnail
潛在類別模式(latent class modeling, LCM)和潛在剖面分析(Latent Profile Analysis, LPA)是探討潛在類別變項的統計技術。兩者與因素分析最大的不同在於潛在變項(因素)的形式。本文將介紹潛在類別/剖面/混合分析操作1:找出最佳組數
Thumbnail
潛在類別模式(latent class modeling, LCM)和潛在剖面分析(Latent Profile Analysis, LPA)是探討潛在類別變項的統計技術。兩者與因素分析最大的不同在於潛在變項(因素)的形式。本文將介紹潛在類別/剖面/混合分析操作1:找出最佳組數
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
商業簡報除了需要好看吸引,也需要帶給決策者可付諸行動的洞見(actionable business intelligence)。在大家都可以找到的數據之上,如何做好篩選和分析,成就了你與其他人的分野。環觀全球仍是籠罩在後疫情、地緣政治、通漲升溫下,剛剛過去了的半年結,你的分析又為老闆帶來了一些甚麼?
Thumbnail
商業簡報除了需要好看吸引,也需要帶給決策者可付諸行動的洞見(actionable business intelligence)。在大家都可以找到的數據之上,如何做好篩選和分析,成就了你與其他人的分野。環觀全球仍是籠罩在後疫情、地緣政治、通漲升溫下,剛剛過去了的半年結,你的分析又為老闆帶來了一些甚麼?
Thumbnail
1. 時間序列的基本概念 常見的時間序列分解方式有以下兩種: 1-1. 加法模型(Additive Model): Y(t)=Trend(t)+Cycle(t)+Seasonal(t)+Irregular(t) 適用於季節性的規模基本保持不變,不隨原始序列水平增減而變化(如圖1(a))。
Thumbnail
1. 時間序列的基本概念 常見的時間序列分解方式有以下兩種: 1-1. 加法模型(Additive Model): Y(t)=Trend(t)+Cycle(t)+Seasonal(t)+Irregular(t) 適用於季節性的規模基本保持不變,不隨原始序列水平增減而變化(如圖1(a))。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News