- 机器学习基础
- 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 算法广泛用于市场购物篮分析,以识别客户购买行为中的模式。例如,零售商可以使用该算法查找经常一起购买的商品,以便共同推广以增加销售额。该算法也可用于医疗保健、金融和社交媒体等其他领域,以识别模式并从大型数据集中生成见解。