
- 機器學習基礎
- ML - 首頁
- ML - 簡介
- ML - 入門
- ML - 基本概念
- ML - 生態系統
- ML - Python 庫
- ML - 應用
- ML - 生命週期
- ML - 必備技能
- ML - 實現
- ML - 挑戰與常見問題
- ML - 限制
- ML - 真實案例
- ML - 資料結構
- ML - 數學
- ML - 人工智慧
- ML - 神經網路
- ML - 深度學習
- ML - 獲取資料集
- ML - 分類資料
- ML - 資料載入
- ML - 資料理解
- ML - 資料準備
- ML - 模型
- ML - 監督學習
- ML - 無監督學習
- ML - 半監督學習
- ML - 強化學習
- ML - 監督學習與無監督學習
- 機器學習資料視覺化
- ML - 資料視覺化
- ML - 直方圖
- ML - 密度圖
- ML - 箱線圖
- ML - 相關矩陣圖
- ML - 散點矩陣圖
- 機器學習統計學
- ML - 統計學
- ML - 均值、中位數、眾數
- ML - 標準差
- ML - 百分位數
- ML - 資料分佈
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假設
- 機器學習中的迴歸分析
- ML - 迴歸分析
- ML - 線性迴歸
- ML - 簡單線性迴歸
- ML - 多元線性迴歸
- ML - 多項式迴歸
- 機器學習中的分類演算法
- ML - 分類演算法
- ML - 邏輯迴歸
- ML - K 近鄰演算法 (KNN)
- ML - 樸素貝葉斯演算法
- ML - 決策樹演算法
- ML - 支援向量機
- ML - 隨機森林
- ML - 混淆矩陣
- ML - 隨機梯度下降
- 機器學習中的聚類演算法
- ML - 聚類演算法
- ML - 基於中心的聚類
- ML - K 均值聚類
- ML - K 中值聚類
- ML - 均值漂移聚類
- ML - 層次聚類
- ML - 基於密度的聚類
- ML - DBSCAN 聚類
- ML - OPTICS 聚類
- ML - HDBSCAN 聚類
- ML - BIRCH 聚類
- ML - 親和傳播
- ML - 基於分佈的聚類
- ML - 凝聚層次聚類
- 機器學習中的降維
- ML - 降維
- ML - 特徵選擇
- ML - 特徵提取
- ML - 後退消除法
- ML - 前向特徵構造
- ML - 高相關性過濾器
- ML - 低方差過濾器
- ML - 缺失值比率
- ML - 主成分分析
- 強化學習
- ML - 強化學習演算法
- ML - 利用與探索
- ML - Q 學習
- ML - REINFORCE 演算法
- ML - SARSA 強化學習
- ML - 演員-評論家方法
- 深度強化學習
- ML - 深度強化學習
- 量子機器學習
- ML - 量子機器學習
- ML - 使用 Python 的量子機器學習
- 機器學習雜項
- ML - 效能指標
- ML - 自動工作流
- ML - 提升模型效能
- ML - 梯度提升
- ML - 自舉匯聚 (Bagging)
- ML - 交叉驗證
- ML - AUC-ROC 曲線
- ML - 網格搜尋
- ML - 資料縮放
- ML - 訓練和測試
- ML - 關聯規則
- ML - Apriori 演算法
- ML - 高斯判別分析
- ML - 成本函式
- ML - 貝葉斯定理
- ML - 精度和召回率
- ML - 對抗性
- ML - 堆疊
- ML - 迭代
- ML - 感知器
- ML - 正則化
- ML - 過擬合
- ML - P 值
- ML - 熵
- ML - MLOps
- ML - 資料洩露
- ML - 機器學習的貨幣化
- ML - 資料型別
- 機器學習 - 資源
- ML - 快速指南
- ML - 速查表
- ML - 面試問題
- ML - 有用資源
- ML - 討論
機器學習 - Apriori 演算法
Apriori 是一種流行的演算法,用於機器學習中的關聯規則挖掘。它用於在交易資料庫中查詢頻繁項集,並根據這些項集生成關聯規則。該演算法由 Rakesh Agrawal 和 Ramakrishnan Srikant 於 1994 年首次提出。
Apriori 演算法透過迭代掃描資料庫以查詢越來越大的頻繁項集來工作。它使用“自底向上”的方法,從單個專案開始,逐漸向候選項集新增更多專案,直到找不到更多頻繁項集。該演算法還採用修剪技術來減少需要檢查的候選項集的數量。
以下是 Apriori 演算法涉及的步驟概述 -
掃描資料庫以查詢每個專案的支援度計數。
根據最小支援度閾值生成一組頻繁的 1-項集。
透過組合頻繁的 1-項集生成一組候選的 2-項集。
再次掃描資料庫以查詢每個候選 2-項集的支援度計數。
根據最小支援度閾值生成一組頻繁的 2-項集,並修剪任何不是頻繁的候選 2-項集。
重複步驟 3-5 以生成候選 k-項集和頻繁 k-項集,直到找不到更多頻繁項集。
示例
在 Python 中,mlxtend 庫提供了 Apriori 演算法的實現。以下是如何在 sklearn 資料集結合 mlxtend 庫在鳶尾花資料集上實現 Apriori 演算法的示例。
from mlxtend.frequent_patterns import apriori from mlxtend.preprocessing import TransactionEncoder from sklearn import datasets # Load the iris dataset iris = datasets.load_iris() # Convert the dataset into a list of transactions transactions = [] for i in range(len(iris.data)): transaction = [] transaction.append('sepal_length=' + str(iris.data[i][0])) transaction.append('sepal_width=' + str(iris.data[i][1])) transaction.append('petal_length=' + str(iris.data[i][2])) transaction.append('petal_width=' + str(iris.data[i][3])) transaction.append('target=' + str(iris.target[i])) transactions.append(transaction) # Encode the transactions using one-hot encoding te = TransactionEncoder() te_ary = te.fit(transactions).transform(transactions) df = pd.DataFrame(te_ary, columns=te.columns_) # Find frequent itemsets with a minimum support of 0.3 frequent_itemsets = apriori(df, min_support=0.3, use_colnames=True) # Print the frequent itemsets print(frequent_itemsets)
在此示例中,我們從 sklearn 載入鳶尾花資料集,其中包含有關鳶尾花的資訊。我們將資料集轉換為交易列表,其中每個交易代表一朵花,幷包含其四個屬性(萼片長度、萼片寬度、花瓣長度和花瓣寬度)以及目標標籤(target)的值。然後,我們使用獨熱編碼對交易進行編碼,並使用 mlxtend 中的 apriori 函式找到最小支援度為 0.3 的頻繁項集。
此程式碼的輸出將顯示頻繁項集及其對應支援度計數。由於鳶尾花資料集相對較小,我們只找到一個頻繁項集 -
輸出
support itemsets 0 0.333333 (target=0) 1 0.333333 (target=1) 2 0.333333 (target=2)
這表明資料集中 33% 的交易同時包含花瓣長度值為 1.4 和目標標籤為 0(對應於鳶尾花資料集中山鳶尾物種)。
Apriori 演算法廣泛用於市場購物籃分析,以識別客戶購買行為中的模式。例如,零售商可以使用該演算法查詢經常一起購買的商品,以便共同推廣以增加銷售額。該演算法也可用於醫療保健、金融和社交媒體等其他領域,以識別模式並從大型資料集中生成見解。