apriori算法代码python_Apriori算法原理及Python代码

article/2025/9/20 17:36:57

一、Apriori算法原理

参考:Python --深入浅出Apriori关联分析算法(一)​www.cnblogs.com4313898a8ae40d91130a538e74b17296.png

二、在Python中使用Apriori算法

查看Apriori算法的帮助文档:

from mlxtend.frequent_patterns import apriori

help(apriori)

Help on function apriori in module mlxtend.frequent_patterns.apriori:

apriori(df, min_support=0.5, use_colnames=False, max_len=None, verbose=0, low_memory=False)

Get frequent itemsets from a one-hot DataFrame

Parameters

-----------

df : pandas DataFrame

pandas DataFrame the encoded format. Also supports

DataFrames with sparse data;

Please note that the old pandas SparseDataFrame format

is no longer supported in mlxtend >= 0.17.2.

The allowed values are either 0/1 or True/False.

For example,

#apriori算法对输入数据类型有特殊要求!

#需要是数据框格式,并且数据要进行one-hot编码转换,转换后商品名称为列名,值为True或False。

#每一行记录代表一个顾客一次购物记录。

#第0条记录为[Apple,Beer,Chicken,Rice],第1条记录为[Apple,Beer,Rice],以此类推。

```

Apple Bananas Beer Chicken Milk Rice

0 True False True True False True

1 True False True False False True

2 True False True False False False

3 True True False False False False

4 False False True True True True

5 False False True False True True

6 False False True False True False

7 True True False False False False

```

min_support : float (default: 0.5)#最小支持度

A float between 0 and 1 for minumum support of the itemsets returned.

The support is computed as the fraction

`transactions_where_item(s)_occur / total_transactions`.

use_colnames : bool (default: False)

#设置为True,则返回的关联规则、频繁项集会使用商品名称,而不是商品所在列的索引值

If `True`, uses the DataFrames' column names in the returned DataFrame

instead of column indices.

max_len : int (default: None)

Maximum length of the itemsets generated. If `None` (default) all

possible itemsets lengths (under the apriori condition) are evaluated.

verbose : int (default: 0)

Shows the number of iterations if >= 1 and `low_memory` is `True`. If

>=1 and `low_memory` is `False`, shows the number of combinations.

low_memory : bool (default: False)

If `True`, uses an iterator to search for combinations above

`min_support`.

Note that while `low_memory=True` should only be used for large dataset

if memory resources are limited, because this implementation is approx.

3-6x slower than the default.

Returns

-----------

pandas DataFrame with columns ['support', 'itemsets'] of all itemsets

that are >= `min_support` and < than `max_len`

(if `max_len` is not None).

Each itemset in the 'itemsets' column is of type `frozenset`,

which is a Python built-in type that behaves similarly to

sets except that it is immutable.

练习数据集:

提取码: 6mbg

部分数据截图:

导入数据:

import pandas as pd

path = 'C:\\Users\\Cara\\Desktop\\store_data.csv'

records = pd.read_csv(path,header=None,encoding='utf-8')

print(records)

结果如下:

使用TransactionEncoder对交易数据进行one-hot编码:

先查看TransactionEncoder的帮助文档:

from mlxtend.preprocessing import TransactionEncoder

... help(TransactionEncoder)

...

Help on class TransactionEncoder in module mlxtend.preprocessing.transactionencoder:

class TransactionEncoder(sklearn.base.BaseEstimator, sklearn.base.TransformerMixin)

| Encoder class for transaction data in Python lists

|

| Parameters

| ------------<


http://chatgpt.dhexx.cn/article/QMk9PFWh.shtml

相关文章

机器学习(10): Apriori算法 小结及实验

文章目录 1 Apriori算法简介2 关联分析简介2.1 关联分析2.2 频繁项集的度量标准2.2.1 支持度2.2.2 置信度 2.3 关联规则 3 Apriori算法原理3.1 先验原理3.2 Apriori 算法流程 4 实验4.1 使用Apriori算法来发现频繁项集4.1.1. 生成候选项集4.1.2 完整的Apriori算法 参考资料 注&…

Apriori算法实例

Apriori算法实例 学习Apriori算法首先要了解几个概念&#xff1a;项集、支持度、置信度、最小支持度、最小置信度、频繁项集。 支持度&#xff1a;项集A、B同时发生的概率称之为关联规则的支持度。 置信度&#xff1a;项集A发生的情况下&#xff0c;则项集B发生的概率为关联…

apriori算法 c语言,数据挖掘算法——Apriori算法

Apriori算法 首先&#xff0c;Apriori算法是关联规则挖掘中很基础也很经典的一个算法。 转载来自&#xff1a;链接&#xff1a;https://www.jianshu.com/p/26d61b83492e 所以做如下补充&#xff1a; 关联规则&#xff1a;形如X→Y的蕴涵式&#xff0c;其中&#xff0c; X和Y分别…

Apriori算法原理

实验环境 python 3.6.5jupyter 【原理】Apriori算法原理 Apriori算法是一种用于关联规则挖掘的代表性算法。从本节开始&#xff0c;我们已经进入了机器学习和数据挖掘相交叉的地带。 数据挖掘与机器学习 数据挖掘和机器学习的关系就好比&#xff0c;机器学习是数据挖掘的弹药…

关联规则挖掘——Apriori算法的基本原理以及改进

问题引入 关联规则挖掘发现大量数据中项集之间有趣的关联或者相互联系。关联规则挖掘的一个典型例子就是购物篮分析,该过程通过发现顾客放入其购物篮中不同商品之间的联系,分析出顾客的购买习惯,通过了解哪些商品频繁地被顾客同时买入,能够帮助零售商制定合理的营销策略。…

学习序列模式挖掘

学习序列模式挖掘 1.1介绍 已Apriori算法为例&#xff0c;此算法是经典的挖掘频繁项集和关联规则的数据挖掘算法。A priori在拉丁语中指"来自以前"。当定义问题时&#xff0c;通常会使用先验知识或者假设&#xff0c;这被称作"一个先验"&#xff08;a pr…

Python|判断素数

1. 判断一个从键盘输入的整型数是否是素数 num int(input()) for i in range(2, num//2):if num % i 0:print("%d不是一个素数" % num)break else:print("%d是一个素数" % num)控制台输入11&#xff0c;结果即&#xff1a; 2.随机生成10个两位正整数&a…

C语言if语句判断素数,利用简单的if语句判断素数

8种机械键盘轴体对比 本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f; 判断素数这个问题是c语言条件&#xff0c;循环中最简单的一个问题 下面就来介绍一下判断素数的代码吧 #include “stdio.h” void main() { int x,i; int flag1;…

C语言 - 判断素数

定义&#xff1a; 素数&#xff08;Prime number&#xff0c;又称质数&#xff09;&#xff0c;指在大于1的自然数中&#xff0c;除了1和该数自身外&#xff0c;无法被其他自然数整除的数 思路一&#xff1a;试除法 1.如果数字 i 能被 2 ~ i-1 整除&#xff0c;说明 i 就是素数…

函数判断素数

1、实现一个函数&#xff0c;判断一个数是不是素数。 2、利用上面实现的函数打印100到200之间的素数。 素数的定义&#xff1a;素数是指大于一的整数中&#xff0c;只能被1和这个数本身整除的数。 假设这个数是n&#xff0c;那么用for循环去遍历&#xff0c;在2——n-1&…

C语言判断素数

素数又称质数。所谓素数是指除了 1 和它本身以外&#xff0c;不能被任何整数整除的数&#xff0c;例如7就是素数&#xff0c;因为它不能被 2~6 的任一整数整除。注意&#xff1a;一般情况下&#xff0c;质数合数只是针对于非零自然数而言&#xff0c;负数没有质数合数一说。 思…

用python判断素数_python判断素数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 质数(prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。 那么想计…

判断素数的方法(全部方法)

功能 最快、最合适地判断一个数为素数 说明 分为打表法和单个判断法两类方法 打表法 是开始时将所有素数标记出来&#xff0c;适合多次调用判断&#xff0c;前两种属于打表法 单个判断法 则是只一个数一个数判断&#xff0c;适合少量判断来节省时间&#xff0c;后俩种属…

c语言判断素数(c语言判断素数)

C语言中素数判断 是素数就返回1&#xff0c;不是的话返回0。 int IsPrime(int n) int i; if (n 1 || n 2 || n 3 || n 5) return 1; else if (n % 2) for (i 3; i < n / 2 1; i 2) if (n % i 0) return 0; return 1; else return 0; } 代码如下&#xf…

C语言判断素数的三种方法 判断素数(质数)

题目&#xff1a; 方法一&#xff1a;在2到n-1之间任取一个数,如果n能被整除则不是素数&#xff0c;否则就是素数 代码示例如下&#xff1a; #include <stdio.h> int main() {int i,n;printf("Please input: ");scanf("%d",&n);for(i2;i<n-…

C语言判断素数(求素数)

C语言判断素数&#xff08;求素数&#xff09; 素数又称质数。所谓素数是指除了 1 和它本身以外&#xff0c;不能被任何整数整除的数&#xff0c;例如17就是素数&#xff0c;因为它不能被 2~16 的任一整数整除。 思路1)&#xff1a;因此判断一个整数m是否是素数&#xff0c;只需…

Flink自定义生成 Watermark

Watermark 策略简介 # 为了使用事件时间语义&#xff0c;Flink 应用程序需要知道事件时间戳对应的字段&#xff0c;意味着数据流中的每个元素都需要拥有可分配的事件时间戳。其通常通过使用 TimestampAssigner API 从元素中的某个字段去访问/提取时间戳。 时间戳的分配与 wat…

Flink学习:WaterMark

WaterMark 一、什么是水位线?二、案例分析三、如何生成水位线?(一)、在SourceFunction中直接定义Timestamps和Watermarks(二)、自定义生成Timstamps和Watermarks 一、什么是水位线? 通常情况下,由于网络或系统等外部因素影响,事件数据往往不能及时传输至Flink系统中,导致数…

flink watermark

flink1.12版本开始&#xff0c;事件事件作为默认的时间语义 watermark是flink逻辑时钟&#xff0c;不是真正意义上的表&#xff0c;而是靠着数据去推动它的时间不停的往前走 工厂生产的商品上面印有时间戳&#xff0c;八点到九点的商品要坐一班车运走&#xff0c;商品从生产到…