[R]如何利用Apriori Algorithm進行關聯性分析,以文具公司執行去化庫存作業為範例?

标签: R
9人阅读 评论(0) 收藏 举报
分类:


決策事務是企業經營者和中高階管理層的重要工作之一,尤其是涉及營運策略的決策事務,更應該謹慎面對。如同唐內拉‧梅多斯(Donella H. Meadows)於系統思考(Thinking in Systems: A Primer)一書所提到的內容,管理層常遇到的問題屬性往往不是彼此獨立,而是具備多種層面並相互關聯的系統性和多維度問題。因此執行決策的前置工作往往須包含明確定義問題、彙整可能涉及該問題的相關資訊以及思考和分析各個層面於該問題的關聯性和影響程度等等相關工作。換句話說,若能藉由彙整資訊的分析工作,有效地評估各層面因子之間關聯性和影響程度,產出合理決策方案的機率相對提升。(OS: 除了上述因子,執行決策事務有時還會遭遇到及時性和資訊不確定性等等問題,總之決策工作是一門高深學問。)


Apriori Algorithm是常用於關聯性分析的演算法,其藉由三個評價指數來判斷頻繁性、因果關係和相依程度,以建立關聯性規則(Association Rule)並支持決策方案,評價指數的定義如下:

(a) support(支持性):

該評價指數說明該關聯性規則於原數據堆中出現的頻繁性,頻繁性越高表示該關聯性規則越具有支持性。一般以設定最小支持門檻值(min support)來篩選關聯性規則。

(b) confidence(信賴性):

該評價指數說明該關聯性規則於原數據堆中的因果關係,藉由比值計算符合A項目(item)的數據中,同時也符合B項目(item)關聯性規則的發生頻次。發生頻次越高表示該該關聯性規則越具備高度因果關係。一般以設定最小信賴門檻值(min confidence)來篩選關聯性規則。

(c) lift(相依性):

該評價指數說明該關聯性規則於原數據堆中的相依程度,lift-1│越大表示該關聯性規則的相依程度越高。


利用Apriori Algorithm在R中進行關聯性分析工作並將結果繪製成可視化圖表(visualization),將需要用到arules和arulesViz兩個套件,建議預先安裝。以文具公司執行去化庫存作業為範例,問題是紙張庫存品過多,根據歷史銷售數據應如何提出有效方案使以提升銷售速度,以達去化庫存目的。該範例簡易擷取100個歷史銷售數據進行分析,其數據格式如圖一所示,1表示購買品項,0表示未購買品項,單一橫列表示某位顧客當次購買的品項清單。


圖一、數據格式


以R實作歷史銷售數據分析的程式碼如圖二所示,說明如下:

(a)為了篩選和呈現少數有效的關聯性規則,經過幾次調整後,將min support訂為0.31,min confidence定義為0.7。

(b)為了解紙張與其他品項的連帶銷售關係,將關聯性規則以紙張售出為目標來呈現,因此使rhs設定為Paper=1。根據設定條件和目標而得到7條關聯性規則。

(c)藉由lift排序和可視化圖表,可進一步比較該7條規則的support和confidence關係,而彙整出關鍵且有效的少數規則,如圖三紅框、圖四和封面圖所示。








由圖三紅框中的三條關聯性規則比較,可歸納為幾個可行方案以供決策用,說明如下:

(a)購買Printer和Envelope.bag,也會一併購買Paper的顧客,其confidence和lift均為三者之間最高,support為最低。該規則發生的頻次最低,若搭配進一步的時間分析,或許僅發生在某幾個特定時期,例如若針對農曆年前的研究所推甄作業和求職履歷投遞作業的高峰期,可將紙張和列表機與信封紙袋整合銷售,或許可解決紙張庫存過多的問題並帶來利潤。

(b)購買Printer和Ink.Cartridge,也會一併購買Paper的顧客,其confidence、lift和support均為次高。該規則說明將紙張和列表機與墨水夾的銷售有一定水準上的相關性,或許可於實體店面將三個品項置放於相鄰區域,亦或者於電商網頁中,主動建立三個品項的連結,應可有助於解決紙張庫存問題。

(c)購買Printer,也會一併購買Paper的顧客,其support最高,confidence和lift都是最低。該規則說明紙張是列表機的基本耗材之一,因此發生的頻次最高。


查看评论

如何开发框架(Framework):以ListView为例

Android从View衍生出一个子类:ListView,来协助App开发者,让其轻易地开发出UI画面上的ListBox来。然而,仅仅一个ListView子类,并无法实现一个漂亮的ListBox画面。于是,规划一个小框架来达成这个目标,对App开发者而言,这个小框架可以帮忙很多。App开发者可以从这个小框架衍生出子类,就能轻易开发出漂亮的ListBox了。本课程就来详细明ListView框架。
  • 2015年09月21日 16:52

使用SQL整合網頁與資料庫

  • 2011年03月05日 11:42
  • 1.42MB
  • 下载

Android SQLite

  • 2015年10月16日 17:39
  • 3.51MB
  • 下载

SSD-layout check list

  • 2014年04月21日 11:47
  • 17KB
  • 下载

api接收範本

  • 2015年09月16日 17:44
  • 820KB
  • 下载

数据挖掘十大经典算法(四) The Apriori algorithm

Apriori algorithm是关联规则里一项基本算法。关联规则的目的就是在一个数据集中找出项与项之间的关系,也被称为购物篮分析 (Market Basket analysis),eg:“尿布和啤...
  • zd836614437
  • zd836614437
  • 2016-03-21 10:57:54
  • 1098

系統分析講義

  • 2013年04月02日 17:56
  • 39KB
  • 下载

关联规则R语言实战(Apriori算法)

最近遇到一个业务问题需要用关联规则的算法来实现,为了解决业务问题,我又重新复习了一遍以前就学过的Apriori算法并将其运用到业务场景中。下面,我想谈一谈在在具体的业务实现过程中我的一些感想。...
  • m0_38037420
  • m0_38037420
  • 2017-07-29 11:47:24
  • 423

當您嘗試安裝或執行 Office 程式時,可能會收到錯誤訊息:「無法開啟修補封裝」或「這個產品的安裝來源無法使用」

當您嘗試安裝 Microsoft Office 程式或首次執行 Office 程式時,可能會收到錯誤訊息。本文列出您可能會收到之常見的錯誤訊息,並以逐步方式協助您安裝和執行 Office 程式。本文主...
  • yin288
  • yin288
  • 2008-03-01 10:44:00
  • 3062

[C#.NET] 如何 使用 多執行緒 Thread / 跨執行緒 存取UI

http://www.dotblogs.com.tw/yc421206/archive/2009/02/13/7141.aspx System.Threading 命名空間提供了執行緒的建立...
  • rocky69
  • rocky69
  • 2013-02-06 09:09:16
  • 9349
    个人资料
    等级:
    访问量: 0
    积分: 30
    排名: 0
    文章分类
    文章存档