跳到主要內容

關聯規則|除了購物籃分析還有什麼?

# 前言

關聯規則分析(Association Rule Analysis) 大概可以列入所有入門資料科學、數據分析的朋友們,都聽過的一門分析方法,最常見的應用不外乎就是購物籃分析(Basket Analysis) 與推薦系統,尤其是那個經典的美國超市的「啤酒與尿布」 的案例。這幾乎是筆者現在每次聽到的時候都會直接腦袋放空的案例,直到筆者在某一次的相關技術分享當中聽到有人提到「月餅與烤肉架、柚子與木炭」這項範例,筆者才發自內心一笑 XD 而誠如標題,這篇文章要討論的關聯規則在購物籃分析之外的應用。
白話來說,關聯規則分析,就是計算在資料集當中不同「項目」(item)共同出現的頻率,藉以找出「具有一定統計顯著關聯」的「規則」。而這個「項目」的定義,自然就根據應用的領域而有所不同。例如各位可能也在教科書或者各大教學網站當中看過,關聯規則分析在醫療生技、投資組合、網路資安控管等等的應用。筆者本身所處的產業是電子製造業,理所當然地要來跟各位簡單聊聊關聯規則在電子製造業的相關應用。


# 異常事件偵測

這類的應用與資安控管、金融詐騙等應用相似,都是將關聯規則分析作為「異常檢測」(Anomaly detection)的方法。而製造業常見的異常檢測議題有什麼呢?機台設備的保養檢查、產品品質檢驗、客戶的需求預測。都是常見的應用。
製造業本是高度實體資本集中的產業,任何可能影響產線正常運作與出貨的事件,都很可能造成公司損失。因此,確保產線能正常運作、產品品質無慮,是製造業無時無刻都在關注的事情。而客戶的需求預測,則就不限於電子製造業,日常營運當中包含實體進出貨作業、並且有庫存成本考量的產業,皆是如此。而「精準地預測客戶需求」本身就是一項艱難的任務,即便是大數據與人工智慧技術蓬勃發展的 2024 年也還是一樣 否則每一位資料分析師就都拿資料套個模型炒股發大財去了。而關聯規則分析則有機會找到異常波動的一些蛛絲馬跡,提前做好防範措施。

相關理論應用範例:

# 失效模式與根因分析

前一段提到了關聯規則在產品品質檢驗的應用,對於現代絕大多數的電子產品,無論是發生在製造過程當中的不良、還是產品銷售至終端消費者之後的不良,都能根據其對應的零部件類別,對不良的原因歸類,而各種不良現象往往也都有對應的處置方法。說白了就是關於不良品處理的 SOP,產品發生了甲、乙、丙、…… 的不良情況,對應 A、B、C、……的處理方法。
這些被分門別類的不良原因與處置手法,就夠作為關聯規則分所需要的每個 item。這在新產品研發設計階段的不良原因剖析,或者是還沒建立且需要建立完整維修 SOP 的時候,非常有幫助。而要特別說明的是,只有失效原因及處置方法的統計資料是不夠的,通常得得和領域專家相互搭配合作,那麼透過關聯規則分析找出來的這些「規則」才能賦予更多的應用價值。
此外,「失效模式與影響分析」是另一個專門的題目,這裡只是提到能透過關聯規則分析來達到失效分析的目的。而既然提到了SOP,那麼自然也不限於製造業,只要有充足的領域規則以及對應的統計資料,那麼關聯規則就有機會在這個任務上派上用場!

相關理論應用範例:

# 倉儲空間規劃與揀貨策略

任何涉及實體商品流通的行業,都一定會面臨到倉儲、物流、與存貨管理的議題。依照存貨的類別、編號來規劃倉儲空間,大概是最常見的方式之一,直觀且依循邏輯。但是從現場物流作業效率的角度來看,卻不見得是如此。流通率高、需要頻繁上下貨的貨架及儲位,可能分散在倉庫當中的不同區域。此時,基於「頻繁項次計算」的關聯規則分析,就能夠在這項議題派上用場。而不限於空間規劃,現場的物流作業,也能夠根據關聯規則分析來提升作業效率。

相關理論應用範例:

# 生產排程

說到製造業的應用議題,怎能漏掉生產排程這個這麼重要的應用場景呢?根據工單的批量、產品的種類、需求的優先度等等,都可以轉換成關聯規則分析所需要的 item,進而改善排程結果本身的效率、或者是產生排程的複雜性。而這樣的應用當然也不限於排工廠的生產排程,對於屬於排程類的任務,例如工廠的生產線人力排班、醫院的人員排班、大眾運輸的班表規劃,也能透過關聯規則分析來改善班表設計。

相關理論應用範例:

# 尾聲

前文概略歸納了幾個關聯規則分析在製造業的常見應用場景,然而在決策分析流程與方法構成上,關聯規則較可能是以輔助性的角色存在。在某些的應用場景當中,可能原本有比關聯規則分析更加合適的決策分析方法。例如在倉儲空間規劃、生產排程的應用當中,數學規劃與啟發式演算法,通常是更合適的方法。而在異常事件偵測的任務當中,其他監督式或非監督式學習方法,可能有機會帶來比關聯規則更好的分析成效。
此外,關聯規則就和眾多統計分析方法一樣,它能夠告訴使用者關於資料之間在統計上存在高度相關性,但不代表這其中就存在因果關聯。正如在失效模式與根因分析的應用當中,勢必須要與業務邏輯緊密連結,才能夠真正發其應用價值。而這不代表關聯規則分析就比較低等。
在實務應用上,不同的工具方法,原本就有其適合的場域。相較於作為主要的決策分析方法論,關聯規則分析更適合用於資料初探、以及降低問題求解複雜性的任務上。絕對不是像現在一堆人覺得 LLM 跟 GensAI 好棒棒無敵萬能,無論什麼任務 LLM 跟 GensAI 搞定! 而如何將其妥善地與其他方法跟領域知識結合,那就是資料科學從業人員還存在的價值!

# 題外話

從本部落格的上一篇文章發佈至今,當中已經間隔超過兩年的時間了。而為什麼這兩年多來都沒有新文章發佈?筆者得說,真正忙碌於本業專案開發的工程師,才沒有那個空閒餘裕來寫部落格文章。
當然還有其他原因,例如在這個人工智慧發大財、一缸子非本科系都想轉行當資料科學家年代,實在不缺筆者這一位來分享這些淺見。尤其筆者本身就是非本科轉職的倖存者偏差案例,無論在理論知識或者程式應用開發上,都不及那些天賦異稟又願意分享技術新知的強者們。基於不希望自己野人獻曝的心態,於是在這兩年當中就埋首於本業的專案任務上。
但是想想,從從事資料科學這一行的宿命,就是得在相關理論與軟硬體技術都不斷地日新月異的環境下,還得想辦法把理論落實到現場應用當中才行,我都不曉得近十年來這些 AI 理論更新的速度與 BTC 的增值速度哪一個比較快了,哪怕使用的理論再簡單、技術架構再土炮都是。而筆者在自己的職業生涯當中,對於不同資料科學方法應用的整合、跨場景的方案整合,是相對比較有心得的。在業界淬鍊了兩年,也是該找時間整理歸納自己多了哪些專業內涵了!



# 文章開頭圖片來源:
https://medium.com/@gizemozdemirg9/recommendation-systems-association-rule-learning-14ab16ddbae5