【數據挖掘】Apriori算法

Apriori算法是經典的關聯規則挖掘算法,用于從事務型數據庫中發現頻繁項集和強關聯規則,特別常用于購物籃分析等場景。


🧠 核心思想(Apriori原則)

一個項集是頻繁的,前提是它的所有子集也必須是頻繁的。
即:“若某項集不頻繁,它的超集也一定不頻繁”

這個原則用于大大減少候選項集的數量,提高挖掘效率。


🚶 Apriori算法執行步驟

下面是算法流程(以最小支持度為前提):

① 掃描數據庫,找出所有頻繁1項集(L1)

  • 統計每個單個商品出現的次數

  • 丟掉那些支持度小于最小閾值的項

② 生成候選2項集(C2),計算頻繁2項集(L2)

  • 將L1中的元素兩兩組合成C2

  • 掃描數據庫計算這些組合的支持度

  • 保留滿足最小支持度的組合,得到L2

③ 使用 L2 構造 C3,找出 L3……

  • 重復步驟直到沒有更多頻繁項集為止

④ 基于頻繁項集生成關聯規則

  • 從每個頻繁項集中拆分出可能的規則A?B

  • 計算這些規則的置信度和提升度

  • 篩選滿足置信度和提升度閾值的規則


? 示例(簡化版)

事務如下:

事務ID商品列表
T1牛奶, 面包
T2牛奶, 尿布, 啤酒
T3面包, 尿布, 可樂
T4牛奶, 面包, 尿布
T5面包, 啤酒

最小支持度設為 0.4(2次出現)

  1. L1:頻繁1項集:{牛奶}, {面包}, {尿布}, {啤酒} ?({可樂}只出現1次,刪除)

  2. C2(候選2項集):組合上面頻繁1項集,比如 {牛奶, 面包}, {尿布, 啤酒} 等

  3. L2:選出支持度 ≥0.4 的組合,如 {牛奶, 面包}, {尿布, 啤酒}(若滿足)

  4. L3:組合L2項集再繼續下去……

  5. 對頻繁項集,如 {牛奶, 尿布} 生成關聯規則:

    • 例如 牛奶 ? 尿布,計算置信度 = 支持(牛奶和尿布) / 支持(牛奶)


📦 應用場景

  • 零售行業的購物籃分析

  • 推薦系統(推薦某個商品時同時推薦相關聯商品)

  • 醫療診斷中發現藥物組合

  • Web日志分析(用戶點擊路徑)


好的!下面是使用 Python 和 mlxtend 庫來實現 Apriori 算法的完整示例。這個庫簡潔高效,適合教學和實踐。


? 步驟一:安裝依賴(如尚未安裝)

pip install mlxtend

? 步驟二:準備事務數據

我們使用“啤酒與尿布”的經典示例:

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder# 示例數據
dataset = [['牛奶', '面包'],['牛奶', '尿布', '啤酒'],['面包', '尿布', '可樂'],['牛奶', '面包', '尿布'],['面包', '啤酒']
]# 轉換為0/1編碼的DataFrame
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
print(df)

輸出:

     啤酒    可樂     尿布     牛奶    面包
0  False  False  False   True   True
1   True  False   True   True  False
2  False   True   True  False   True
3  False  False   True   True   True
4   True  False  False  False   True

? 步驟三:使用 Apriori 算法找出頻繁項集

from mlxtend.frequent_patterns import apriori# 設定最小支持度為0.4(即至少2次)
frequent_itemsets = apriori(df, min_support=0.4, use_colnames=True)
print(frequent_itemsets)

輸出示例:

   support     itemsets
0      0.6       {面包}
1      0.6       {尿布}
2      0.6       {牛奶}
3      0.4       {啤酒}
4      0.4     {牛奶, 面包}
5      0.4     {牛奶, 尿布}
6      0.4     {尿布, 面包}

? 步驟四:生成關聯規則

from mlxtend.frequent_patterns import association_rules# 使用置信度最小值篩選規則
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.6)
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])

輸出示例:

  antecedents consequents  support  confidence  lift
0      {牛奶}       {面包}     0.4        0.67   1.11
1      {面包}       {牛奶}     0.4        0.67   1.11
2      {牛奶}       {尿布}     0.4        0.67   1.11

? 總結

  • 頻繁項集 通過 apriori() 計算,保留支持度高的組合;

  • 關聯規則 通過 association_rules() 生成,評估置信度、提升度等;

  • 可調整 min_supportmin_threshold 控制挖掘深度。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80354.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80354.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單鏈表設計與實現

01. 單鏈表簡介 在數據結構中,單鏈表的實現可以分為 帶頭結點 和 不帶頭結點 兩種方式,這里我們討論第二種方式。 頭結點:鏈表第一個節點不存實際數據,僅作為輔助節點指向首元節點(第一個數據節點)。頭指…

【論文閱讀】——Articulate AnyMesh: Open-Vocabulary 3D Articulated Objects Modeling

文章目錄 摘要一、介紹二、相關工作2.1. 鉸接對象建模2.2. 部件感知3D生成 三、方法3.1. 概述3.2. 通過VLM助手進行可移動部件分割3.3. 通過幾何感知視覺提示的發音估計3.4. 通過隨機關節狀態進行細化 四、實驗4.1. 定量實驗發音估計設置: 4.2. 應用程序 五、結論六、思考 摘要…

Zookeeper單機版安裝部署

目錄 1.1、概述1.2、系統環境1.3、部署流程1.3.1、下載安裝包1.3.2、解壓文件1.3.3、創建數據目錄和日志目錄1.3.4、配置ZooKeeper1.3.5、啟動ZooKeeper服務1.3.6、連接和驗證 1.4、Zookeeper服務管理命令1.4.1、啟動Zookeeper服務1.4.2、停止Zookeeper服務1.4.3、查看Zookeepe…

在 Elasticsearch 中刪除文檔中的某個字段

作者:來自 Elastic Kofi Bartlett 探索在 Elasticsearch 中刪除文檔字段的方法。 更多有關 Elasticsearch 文檔的操作,請詳細閱讀文章 “開始使用 Elasticsearch (1)”。 想獲得 Elastic 認證?查看下一期 Elasticsear…

元數據和主數據

元數據和主數據是數據管理中的兩個關鍵概念,其核心區別如下: 1. 定義與本質 元數據(Metadata) “關于數據的數據”,用于描述數據的屬性、結構、來源、用途等上下文信息。 示例:數據庫表的字段名稱、數據類型…

java的Stream流處理

Java Stream 流處理詳解 Stream 是 Java 8 引入的一個強大的數據處理抽象,它允許你以聲明式方式處理數據集合(類似于 SQL 語句),支持并行操作,提高了代碼的可讀性和處理效率。 一、Stream 的核心概念 1. 什么是 Str…

llama-Factory不宜直接掛接Ollama的大模型

前言 llama-Factory嘗試使用Ollama本地安裝的大模型。 一、在Ollama中安裝QWen 安裝qwen:0.5b 安裝完成了: 同理安裝qwen2.5:0.5b 安裝完畢后,再用ollama list進行查看: 我們在chatbox中進行查看: 說明這兩個大模型,…

基于WSL用MSVC編譯ffmpeg7.1

在windows平臺編譯FFmpeg,網上的大部分資料都是推薦用msys2mingw進行編譯。在win10平臺,我們可以采用另一種方式,即wslmsvc 實現window平臺的ffmpeg編譯。 下面將以vs2022ubuntu22.04 為例,介紹此方法 0、前期準備 安裝vs2022 &…

vue3+vite項目引入tailwindcss

從2025年1月tailwindcss4.0發布開始使用tailwindcss比之前簡化很多 1,安裝 yarn add tailwindcss tailwindcss/vite2,配置vite.config.js import tailwindcss from tailwindcss/vite;...plugins: [tailwindcss(),...] ...3,在主css文件頂部添加 注意一定是css文件,不能是sc…

藍牙RFCOMM協議概述

RFCOMM概述 概念 RFCOMM 協議提供了對 L2CAP 協議上的串行端口的模擬。該協議基于 ETSI 標準 GSM 07.10。 RFCOMM 采用與 TS07.10 相同的字節序列方式。所有二進制數字都按照從低位到高位的順序,從左至右讀。 兩個使用RFCOMM通信的藍牙設備可以打開多個仿真串行端…

[工具]B站緩存工具箱 (By 郭逍遙)

📌 項目簡介 B站緩存工具箱是一個多功能的B站緩存工具,包含視頻下載、緩存重載、文件合并及系統設置四大核心功能。基于yutto開發,采用圖形化界面操作,極大簡化B站資源獲取與管理流程。 工具可以直接將原本緩存的視頻讀取&#…

算法訓練營第十三天|226.翻轉二叉樹、101. 對稱二叉樹、 104.二叉樹的最大深度、111.二叉樹的最小深度

遞歸 遞歸三部曲: 1.確定參數和返回值2.確定終止條件3.確定單層邏輯 226.翻轉二叉樹 題目 思路與解法 第一想法: 遞歸,對每個結點進行反轉 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, le…

sunset:Solstice靶場

sunset:Solstice https://www.vulnhub.com/entry/sunset-solstice,499/ 1,將兩臺虛擬機網絡連接都改為NAT模式 2,攻擊機上做namp局域網掃描發現靶機 nmap -sn 192.168.23.0/24 那么攻擊機IP為192.168.23.182,靶場IP192.168.23.244 3&#xff…

AZScreenRecorder最新版:功能強大、操作簡便的手機錄屏軟件

AZScreenRecorder最新版是一款功能強大的手機錄屏軟件,專為安卓設備設計。它無需ROOT權限,支持無限錄制時長,操作簡單,錄制過程中可以隨時暫停,滿足不同用戶的個性化錄屏需求。此外,用戶還可以自定義分辨率…

模塊自動導入的小工具

import { ref, reactive, onMounted } from vue import { useRoute, useRouter } from vue-router項目里很多文件都需要引入這些公共庫,比較繁瑣,使用一個小工具可以自動導入,就不需要在每個文件里面都寫這些導入的代碼了。 通過命令行下載安…

【讀書筆記】《編碼:隱匿在計算機軟硬件背后的語言》01 邏輯與開關

【讀書筆記】《編碼:隱匿在計算機軟硬件背后的語言》01 邏輯與開關 前言01 邏輯與開關 前言 我是一名光學工程專業研二的學生,目前正處于找工作的階段,根據往年師兄師姐找工作的情況,在西安這個城市不出意外我能找到的應該就是嵌入…

TXT編碼轉換工具iconv

iconv.exe是實現TXT編碼轉換的命令行工具,支持幾百種編碼格式的轉換,利用它可以在自主開發程序上實現TXT文檔編碼的自動轉換。 一、命令參數格式 Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...] or: iconv -l 二、轉換的示例 將UTF-8…

軟考中級數據庫備考-上午篇

背景 新工作主要做大數據平臺,考一個軟考中級數據庫系統工程師,補足一下基礎知識。 基礎知識 1.計算機硬件基礎知識 正確答案:C 正確答案:D 正確答案:C 正確答案:BC 正確答案:B 正確答案:D 正確答案:A DMA建立內存與外設的直接…

AtCoder AT_abc405_d ABC405D - Escape Route

前言 BFS 算法在 AtCoder 比賽中還是會考的,因為不常練習導致沒想到,不僅錯誤 TLE 了很多,還影響了心態,3 發罰時后才 AC。 思路 首先,我們把所有位置和出口的距離算出來(用 BFS)&#xff0c…

【計算機視覺】目標檢測:yoloV1~yoloV11項目論文及對比

以下是 YOLO (You Only Look Once) 系列模型從 V1 到 V11 的詳細介紹和項目地址(截至2024年7月)。YOLO 是目標檢測領域的里程碑模型,以其 實時性 和 高精度 著稱,廣泛應用于自動駕駛、安防監控、工業檢測等領域。 YOLOv1 (2016) …