下面详细讲解一下“python使用Apriori算法进行关联性解析”的完整攻略。
一、什么是关联性分析和Apriori算法
1.1 关联性分析
关联性分析(Association Analysis)是一种寻找事物之间依存关系的方法,是数据挖掘领域中的一种常用方法。在销售、广告、推荐等领域具有广泛的应用。
关联性分析的基本目的是找出每个物品之间的关系,比如商品购买记录中,伴随出现的商品之间存在什么样的关系。
1.2 Apriori算法
Apriori算法是一种用于关联性分析的经典算法,是由Agrawal和Srikant在1994年提出的。Apriori算法主要包括如下两个步骤:
- 扫描数据集,得到所有频繁项集(包含上述至少两个物品同时出现的项集);
- 根据频繁项集生成关联规则。
二、使用Apriori算法进行关联性分析
现在我们来使用Python来实现关联性分析的过程,具体的步骤如下所示:
2.1 安装Apriori算法库
Python有apriori算法库,我们只需要安装这个库就可以使用Apriori算法进行关联性分析了。在命令行中使用如下命令来安装:
!pip install apriori
2.2 数据准备
在开始之前,我们需要准备好数据。假设我们现在有一个超市的销售数据(transactions.csv),数据格式如下:
milk,bread,butter
bread,butter,tea
milk,bread,tea,butter
这个数据集中列举了三次购物的商品,每次购物都是以逗号分隔的。现在我们需要把这个数据读入到Python中。
import pandas as pd
df = pd.read_csv('transactions.csv', header=None)
2.3 使用Apriori算法计算频繁项集
在这一步中,我们需要使用Apriori算法,对购物记录进行频繁项集的计算。
from apriori import apriori
frequent_items = apriori(df.values, min_support=0.5, verbose=True)
使用Apriori算法计算频繁项集需要输入几个参数:
- data: 输入的数据,格式为二维列表;
- min_support: 最小支持度,即出现次数占总次数的比例,默认0.5;
- verbose: 是否打印详细过程,默认False。
运行完这个算法后,我们会得到一个包含所有频繁项集的列表frequent_items。
2.4 生成关联规则
根据上面得到的频繁项集,我们可以再利用Apriori算法,生成关联规则。
from apriori import apriori
from apriori import rules_from_conseqences
frequent_items = apriori(df.values, min_support=0.5, verbose=True)
rules = rules_from_conseqences(frequent_items, 0.7)
这里,我们使用了rules_from_conseqences函数来生成关联规则。它需要两个参数:
- frequent_items: 频繁项集,和我们上面计算频繁项集得到的那个变量一样;
- min_confidence: 最小置信度,默认为0.7。
2.5 输出关联规则
最后,我们可以使用如下代码来输出得到的关联规则。
for rule in rules:
print(rule)
这个代码会依次输出每条关联规则,每条规则的格式为: {物品1, 物品2} -> {物品3},后面的置信度是float类型的。
三、示例说明
3.1 示例1
现在我们用一个更大的示例来说明关联性分析的过程。假设我们现在有一个包含100个实例和100个特征的数据集,每个特征都是二元属性,即每个特征的取值都是“是”或“否”,数据集被存储在csv文件中(data.csv)。
import pandas as pd
from apriori import apriori
from apriori import rules_from_conseqences
df = pd.read_csv('data.csv', header=None)
frequent_items = apriori(df.values, min_support=0.5, verbose=True)
rules = rules_from_conseqences(frequent_items, 0.7)
for rule in rules:
print(rule)
3.2 示例2
另外,我们可以使用一个更常见的实例来说明关联性分析的过程,就是还是购物数据集。
购物数据集就是在一个超市里面,顾客买了不同的物品,我们需要分析每个物品之间存在什么样的关联性。
下面是购物数据集(transactions.csv)的某一部分:
milk,bread,butter
bread,butter,tea
milk,bread,tea,butter
现在我们就可以使用Apriori算法,对购物数据集进行关联性分析,得到购物中的商品之间的关系规则。具体代码如下:
import pandas as pd
from apriori import apriori
from apriori import rules_from_conseqences
df = pd.read_csv('transactions.csv', header=None)
frequent_items = apriori(df.values, min_support=0.5, verbose=True)
rules = rules_from_conseqences(frequent_items, 0.7)
for rule in rules:
print(rule)
以上两个示例都演示了使用Apriori算法进行关联性分析的过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用Apriori算法进行关联性解析 - Python技术站