Apriori 算法:它是如何工作的? 品牌如何利用 Apriori 算法?
已發表: 2020-03-26想像一下你在超市,在你的腦海中,你有你想買的東西。 但你最終買的比你應該買的多得多。 這被稱為衝動購買,品牌使用先驗算法來利用這種現象。 如果您有興趣了解有關數據科學算法的更多信息,請單擊以了解更多信息。
這個算法是什麼? 它是如何工作的? 您將在本文中找到這些問題的答案。 我們將首先看看這個算法是什麼,然後看看它是如何工作的。
讓我們開始。
目錄
什麼是 Apriori 算法?
先驗算法為您提供頻繁項集。 它的基礎是先驗性質,我們可以用以下方式解釋:
假設您擁有的項目集的支持值小於必要的支持值。 然後,該項目集的子集的支持值也將低於所需的值。 因此,您不會將它們包括在計算中,因此可以節省大量空間。
支持值是指特定項集在事務中出現的次數。 由於在推薦系統中的應用,apriori 算法非常流行。 通常,您會將此算法應用於事務數據庫,即事務數據庫。 該算法也有許多實際應用。 您還應該熟悉關聯規則挖掘以正確理解先驗算法。
另請閱讀:數據科學的先決條件。 它如何隨時間變化?
Apriori 算法是如何工作的?
先驗算法利用頻繁項集生成關聯規則。 它的原理很簡單——頻繁項集的子集也是頻繁項集。 支持度大於閾值的項集是頻繁項集。 考慮以下數據:
TID | 項目 |
T1 | 1 3 4 |
T2 | 2 3 5 |
T3 | 1 2 3 5 |
T4 | 2 5 |
T5 | 1 3 5 |
在第一次迭代中,假設支持值為 2,並使項集的大小為 1。現在相應地計算它們的支持值。 我們將丟棄支持值低於最小值的項目。 在此示例中,這將是第 4 項。
C1(第一次迭代的結果)
物品集 | 支持 |
{1} | 3 |
{2} | 3 |
{3} | 4 |
{4} | 1 |
{5} | 4 |
F1(在我們丟棄 {4} 之後)
物品集 | 支持 |
{1} | 3 |
{2} | 3 |
{3} | 4 |
{5} | 4 |
在第二次迭代中,我們將項目集的大小保持為 2,然後計算支持值。 我們將在本次迭代中使用表 F1 的所有組合。 我們將刪除任何支持值小於 2 的項集。
C2(只有 F1 中存在的項目)
物品集 | 支持 |
{1,2} | 1 |
{1,3} | 3 |
{1,5} | 2 |
{2,3} | 2 |
{2,5} | 3 |
{3,5} | 3 |
F2(在我們刪除支持值低於 2 的項目之後)
物品集 | 支持 |
{1,3} | 3 |
{1,5} | 2 |
{2,3} | 2 |
{2,5} | 3 |
{3,5} | 3 |

現在,我們將執行修剪。 在這種情況下,我們將 C3 的項集劃分為子集,並刪除支持值小於 2 的項集。
C3(在我們執行修剪之後)
物品集 | 在F2? |
{1,2,3}、{1,2}、{1,3}、{2,3} | 不 |
{1,2,5},{1,2},{1,5},{2,5} | 不 |
{1,3,5}、{1,5}、{1,3}、{3,5} | 是的 |
{2,3,5}、{2,3}、{2,5}、{3,5} | 是的 |
在第三次迭代中,我們將丟棄 {1,2,5} 和 {1,2,3},因為它們都有 {1,2}。 這是先驗算法的主要影響。
F3(在我們丟棄 {1,2,5} 和 {1,2,3} 之後)
物品集 | 支持 |
{1,3,5} | 2 |
{2,3,5} | 2 |
在第四次迭代中,我們將使用 F3 的集合來創建 C4。 但是,由於 C4 的支持度值低於 2,我們不會繼續,最終的項目集是 F3。
C3
物品集 | 支持 |
{1,2,3,5} | 1 |
我們有以下 F3 項集:
對於 I = {1,3,5},我們擁有的子集是 {5}, {3}, {1}, {3,5}, {1,5}, {1,3}
對於 I = {2,3,5},我們擁有的子集是 {5}, {3}, {2}, {3,5}, {2,5}, {2,3}
現在,我們將在項集 F3 上創建和應用規則。 為此,我們假設當前的最小置信度值為 60%。 對於 I 的子集 S,這是我們輸出的規則:
- S -> (I,S)(這意味著 S 推薦 IS)
- 如果 support(I) / support(S) >= min_conf 值
讓我們對我們擁有的第一個子集執行此操作,即 {1,3,5}
規則 1: {1,3} -> ({1,3,5} – {1,3}) 這意味著 1 & 3-> 5
置信度 = (1,3,5) 的支持值 / (1,3) 的支持值 = ⅔ = 66.66%
由於結果高於 60%,我們選擇規則 1。
規則 2: {1,5} -> {(1,3,5) – {1,5}) 這意味著 1 & 5 -> 3
置信值 = (1,3,5) 的支持值 / (1,5) 的支持值 = 2/2 = 100%
由於結果高於 60%,我們選擇規則 2。
規則 3: {3} -> ({1,3,5} – {3}) 這意味著 3 -> 1 & 5
置信值 = (1,3,5) 的支持值 / (3) 的支持值 = 2/4 = 50%
由於結果低於 60%,我們拒絕規則 3。
從世界頂尖大學學習數據科學課程。 加入我們的行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
通過上面的示例,您可以看到 Apriori 算法如何創建和應用規則。 對於我們擁有的第二個項目集 ({2,3,5}),您可以按照這些步驟操作。 嘗試一下肯定會讓您在理解算法接受哪些規則以及拒絕哪些規則方面獲得豐富的經驗。 該算法在其他地方保持不變,例如 Apriori 算法 Python。
結論
讀完這篇文章,相信你會對這個算法及其應用非常熟悉。 由於它在推薦系統中的使用,它也變得非常流行。
有沒有比 Apriori 算法更高效的算法?
ECLAT(等價類聚類和自下而上的格遍歷)算法被發現是一種非常有用且流行的關聯規則挖掘算法。 最重要的是,與 Apriori 算法相比,它也被認為是一種更高效、更快的算法。
Apriori 算法以水平方式工作,因為它模仿圖的廣度優先搜索,而 ECLAT 算法以垂直方式工作,通過模仿圖的深度優先搜索。 與 Apriori 算法相比,這種垂直方法是 ECLAT 算法速度更快、效率更高的原因。
Apriori 算法有什麼用途?
Apriori算法是數據挖掘中廣泛使用的經典算法。 它對於從可用數據庫中挖掘相關關聯規則和頻繁項集非常有用。 通常,必須處理包含大量事務的數據庫的組織會使用此算法。 例如,先驗算法可以很容易地確定客戶經常從您的商店購買的商品。 借助該算法,可以極大地提高市場銷售量。
除此之外,該算法還用於醫療保健領域,用於檢測藥物不良反應。 該算法生成關聯規則,以確定可能導致藥物不良反應的患者特徵和藥物的所有組合。
Apriori算法的優缺點是什麼?
Apriori 算法很容易實現、理解並且可以非常有效地用於大型項目集。 有時,可能需要找到大量候選規則,而這個過程的計算量可能會有點大。 由於它必須遍歷整個數據庫,因此計算支持度也很昂貴。