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

閱讀時間約 5 分鐘
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。購物籃分析最經典的就是啤酒與尿布的例子了!
世界最大的零售商沃爾瑪(Wal-mart)就運用關聯分析的技術,從每日大量的商品交易資料中進行消費者購買商品間的關聯分析,結果竟然意外發現星期四晚上通常同時購買啤酒與尿布。
現在就來看看要如何利用R語言進行關聯分析吧!
首先,先載入關聯分析所需要用到的arules相關套件:
install.packages("arules")
library(arules)
install.packages("arulesViz")
library(arulesViz)
下載後打開該資料檔,會發現它跟我們平常用來分析的資料檔並不一樣,是屬於交易資料形式。
因此我們必須採用read.transaction來讀取(交易資料與一般data frame不同,為每次買了甚麼商品)
groceries = read.transactions("C:\\Users\\user\\Desktop\\groceries.csv",sep=",")
讀取完後可以使用summary函式看一下資料的摘要。
summary(groceries)
執行結果如下,可以發現統計出了幾個比較頻繁出現的字詞,
接下來呢,我們用inspect函式來看前面五筆資料。
inspect(groceries[1:5])
除了看商品品項之外,也可以使用size函式,來看單次購買的品項有幾種商品。
接著呢,我們再利用itemFrequency函式,去列出每一項品項佔的比例,藉由這個函數,也可以找出出現頻率比較高的商品。
itemFrequency(groceries)
接下來就是重頭戲拉!  看到密密麻麻的比例我們要怎麼讓它變得比較好理解呢?
因此我們接著來進行畫圖的動作。
用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出現的頻率是最高的
再來,便是載入在關聯分析中最重要的演算法之一 —> 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 代表買左邊也會買右邊的意思,而支持度與信賴度,則分別代表了普遍性與信心水準。
例如,第一個關聯規則可以解釋為,「若某人單次消費購買的是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])
執行結果:
關於關聯分析就先講到這裡啦,在資料的世界裡,有太多太多關聯等著我們去挖掘,每個細微的地方,都可能隱藏著商機,這也是為甚麼有越來越多公司花大錢也要進行資料探勘,常見的電影推薦、購物網站商品推薦,其實都是關聯分析的運用。
14會員
17Content count
還在為不知道怎麼面試而煩惱嗎? 還在為苦無面試機會而沮喪嗎? 別擔心~讓我們一起面對! 在專題中,我將以自身經驗傳授如何撰寫履歷以及分享面試經驗。
留言0
查看全部
發表第一個留言支持創作者!
格蘭特的沙龍 的其他內容
在工作中遇到的問題實在是千奇百怪,跟C++搏鬥了好一陣子了,仍然還是跟它不是很熟,最近工作上更遇到了bug之王的segmentation fault錯誤,雖然還沒找出root cause,不過在找了一陣子未果後,想說透過更系統性的方法來調查甚麼原因會導致segmentation fault。
在工作中遇到的問題實在是千奇百怪,跟C++搏鬥了好一陣子了,仍然還是跟它不是很熟,最近工作上更遇到了bug之王的segmentation fault錯誤,雖然還沒找出root cause,不過在找了一陣子未果後,想說透過更系統性的方法來調查甚麼原因會導致segmentation fault。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。
Thumbnail
如果你曾經嘗試學習多種語言, 你會發現每種語言都有其獨特之處。 在我26至28歲期間, 我系統地學習了語言學知識, 以此來輔助我學習俄語、法語、德語、義大利語和西班牙語。 這個過程中, 我發現了大語言模型(LLMs)在語言學習上的巨大潛力。
Thumbnail
年報(Annual Reports)對於公開上市公司的財務狀況提供了重要的資訊。 年報不僅是公開上市公司每年必須發布的法定文件,更是投資者、股東和分析師評估一家公司財務狀況和未來發展潛力的重要來源。 年報包括了獲利表現、資產狀況、業務策略和風險因素等,這些都會對公司的股價產生直接或間接的影響。
Thumbnail
在某間前外商公司的最終面試前,知道面試官總經理是新加坡人,但不知道為何明明在台灣面試她卻一開口就說英語。
Thumbnail
週末迅速追完華燈初上,可以安心上網(笑)。目前為止網友對劇的評論負面大於正面,我自己是覺得確實不能當做懸疑推理劇來看待,但整部片還是滿賞心悅目的啦。 有點離題了,是在讀心得時看到這張梗圖一直出現覺得很好笑,靈光一閃心想,這張圖翻譯成古文(?)不就是「狗尾續貂」嗎!
Thumbnail
因為身為中國移民的家庭——在這裡先不要評論我這個用詞的正當性——家人的祖輩們又來自各方,我的語言使用其實很不道地,我聽得懂97%的台語,唯有那3%巷仔內的用語,或是各地的方言聽不太懂,通常我能聽得懂全台語的演講。
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。
Thumbnail
如果你曾經嘗試學習多種語言, 你會發現每種語言都有其獨特之處。 在我26至28歲期間, 我系統地學習了語言學知識, 以此來輔助我學習俄語、法語、德語、義大利語和西班牙語。 這個過程中, 我發現了大語言模型(LLMs)在語言學習上的巨大潛力。
Thumbnail
年報(Annual Reports)對於公開上市公司的財務狀況提供了重要的資訊。 年報不僅是公開上市公司每年必須發布的法定文件,更是投資者、股東和分析師評估一家公司財務狀況和未來發展潛力的重要來源。 年報包括了獲利表現、資產狀況、業務策略和風險因素等,這些都會對公司的股價產生直接或間接的影響。
Thumbnail
在某間前外商公司的最終面試前,知道面試官總經理是新加坡人,但不知道為何明明在台灣面試她卻一開口就說英語。
Thumbnail
週末迅速追完華燈初上,可以安心上網(笑)。目前為止網友對劇的評論負面大於正面,我自己是覺得確實不能當做懸疑推理劇來看待,但整部片還是滿賞心悅目的啦。 有點離題了,是在讀心得時看到這張梗圖一直出現覺得很好笑,靈光一閃心想,這張圖翻譯成古文(?)不就是「狗尾續貂」嗎!
Thumbnail
因為身為中國移民的家庭——在這裡先不要評論我這個用詞的正當性——家人的祖輩們又來自各方,我的語言使用其實很不道地,我聽得懂97%的台語,唯有那3%巷仔內的用語,或是各地的方言聽不太懂,通常我能聽得懂全台語的演講。