一、关联规则分析
关联规则分析是数据挖掘中的一种技术,用于发现数据集中的变量之间的有趣关系。这种技术最常用于市场篮子分析(Market Basket Analysis),即在零售环境中寻找商品之间的购买模式。例如,它可以揭示出购买了特定类型面包的顾客是否更有可能同时购买黄油或果酱。
关联规则分析的核心概念包括:
-
项集(Itemset):一个项集是一组项目。例如,在超市购物篮中可能包含牛奶、面包和鸡蛋。
-
支持度(Support):表示项集在所有交易中出现的频率。如果某个项集的支持度高,说明这个组合很常见。
-
置信度(Confidence):表示给定前项(前提条件)后,后项(结果)出现的概率。例如,“如果一个人买了尿布,那么他买啤酒的概率”就是一种置信度。
-
提升度(Lift):衡量两个项集之间关联性的强度,它是指前项与后项同时发生的概率相对于它们各自单独发生概率的比率。如果提升度大于1,则表示两个项集正相关;如果等于1,则表示独立;小于1则表示负相关。
进行关联规则分析的一般步骤如下:
- 数据准备:收集并整理数据,确保数据质量。
- 选择合适的算法:常用的算法有Apriori、FP-growth等。
- 设置参数:如最小支持度阈值、最小置信度阈值等。
- 执行分析:使用选定的算法根据设定的参数来挖掘潜在的关联规则。
- 评估结果:对得到的规则进行评估,筛选出真正有用的信息。
- 应用规则:将有效的关联规则应用于实际业务场景中,比如优化商品布局、制定促销策略等。
关联规则分析不仅限于零售行业,还可以应用于其他领域,如医疗健康数据分析、网站点击流分析等。通过发现不同变量之间的关联性,可以帮助企业和组织更好地理解客户行为,做出更加精准的决策。
1.分析思路
首先我们要找出哪些电影类型是在一部影片中经常一起出现的,根据分析结果给出电影创作的一些类型和内容建议,所以我们选择apriori算法,对movies_type.csv文件中的各个电影类别进行扫描,计算支持度。
2.实践代码
2.1引入需要用到的数据库pandas和mlxtend中的apriori
import pandas as pd
from mlxtend.frequent_patterns import apriori
2.2运用pandas库导入准备好的数据
data=pd.read_csv('movies_type.csv',encoding='ISO-8859-1')
2.3查看数据集中数据是否完整,是否需要对数据进行预处理
data.info()
代码运行结果:
可以看到各个电影类型数据完整,无需对数据进行预处理
2.4将数据进行切分出来,查看前5条数据
data_cop=data[{'(no genres listed)','Action','Adventure','Animation','Children','Comedy','Crime','Documentary','Drama','Fantasy','Film-Noir','Horror','IMAX','Musical','Mystery','Romance','Sci-Fi','Thriller','War'}]
data_cop.head()
代码运行结果:
2.5数据已经准备好了,将数据放进算法中进行计算,这里将算法结果保存在Result中,最低支持度设置为0.05,不设置最大项目数,且使用属性列名
Result=apriori(data_cop,min_support=0.05,max_len=None,use_colnames=True)
print(Result)
代码运行结果:
3.分析结论
从频繁项集可以看到:
单项的频繁项集结果电影中,戏剧(Drama)、喜剧(Comedy)是单项经常出现的电影,支持度都大于0.2。
从双项的频繁项集结果可以看到:戏剧(Drama)和喜剧(Comedy)、戏剧(Drama)和浪漫(Romance)、喜剧(Comedy)和浪漫(Romance)、惊险刺激(Thriller)和戏剧(Drama)支持度比较高都在0.05以上可以把两类电影结合在一起。