天池学习赛——基于Apriori算法的商品频繁项集与关联规则的挖掘

简介: 赛题以购物篮分析为背景,要求选手对品牌的历史订单数据,挖掘频繁项集与关联规则。通过这道赛题,鼓励学习者利用订单数据,为企业提供销售策略,产品关联组合,为企业提升销量的同时,也为消费者提供更适合的商品推荐。

赛题背景

赛题以购物篮分析为背景,要求选手对品牌的历史订单数据,挖掘频繁项集与关联规则。通过这道赛题,鼓励学习者利用订单数据,为企业提供销售策略,产品关联组合,为企业提升销量的同时,也为消费者提供更适合的商品推荐。

赛题数据

数据源:order.csv,product.csv,customer.csv,date.csv ,分别为订单表,产品表,客户表,日期表

赛题任务

现在需要你使用关联分析(比如Apriori算法) 挖掘订单中的频繁项集及关联规则

说明:

1)频繁项集、关联规则的计算会用到支持度、置信度、提升度等指标,

2)频繁项集:即大于最小支持度的商品或商品组合

3)关联规则:在频繁项集中,满足最小置信度,或最小提升度的推荐规则

解答

from efficient_apriori import apriori
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_order = pd.read_csv("../download/order.csv", encoding='gbk')
df_customer = pd.read_csv("../download/customer.csv", encoding='gbk')
df_date = pd.read_csv("../download/date.csv", encoding='gbk')
df_product = pd.read_csv("../download/product.csv", encoding='gbk')
df_order['订单日期']=pd.to_datetime(df_order['订单日期'])
print(df_order.head())

2345_image_file_copy_15.jpg

df_order = df_order.groupby(['客户ID'])['产品名称'].unique()
print(df_order.head())
# 将所有交易订单追加到列表
transactions = []
for value in df_order:
    transactions.append(list(value))
import time
# 挖掘频繁项集和频繁规则
start = time.time()
itemsets, rules = apriori(transactions, min_support=0.03,  min_confidence=0.3)
print("频繁项集:", itemsets)
print("关联规则:", rules)
end = time.time()
print("用时:",end-start)

2345_image_file_copy_16.jpg

import operator
#分别根据置信度、支持度、提升度对规则进行排序
confidence = dict()
support = dict()
lift = dict()
for rule in rules:
    confidence[rule] = rule.confidence
    support[rule] = rule.support    
    lift[(rule)] = rule.lift    
    #rule.lhs,rule.rhs可用作提取规则的前件、后件
rules_sortbycon = sorted(confidence.items(),key=operator.itemgetter(1),reverse = True)
rules_sortbysup = sorted(support.items(),key=operator.itemgetter(1),reverse = True)
rules_sortbylift = sorted(lift.items(),key=operator.itemgetter(1),reverse = True)

根据支持度排序


2345_image_file_copy_17.jpg


根据置信度排序


2345_image_file_copy_18.jpg


根据提升度排序


2345_image_file_copy_19.jpg





目录
相关文章
|
11月前
|
机器学习/深度学习 自然语言处理 算法
小红书:通过商品标签API自动生成内容标签,优化社区推荐算法
小红书通过商品标签API自动生成内容标签,提升推荐系统精准度与用户体验。流程包括API集成、标签生成算法与推荐优化,实现高效率、智能化内容匹配,助力社交电商发展。
|
10月前
|
存储 算法 编译器
算法入门:剑指offer改编题目:查找总价格为目标值的两个商品
给定递增数组和目标值target,找出两数之和等于target的两个数字。利用双指针法,left从头、right从尾向中间逼近,根据和与target的大小关系调整指针,时间复杂度O(n),空间复杂度O(1)。找不到时返回{-1,-1}。
|
11月前
|
算法 API 数据安全/隐私保护
深度解析京东图片搜索API:从图像识别到商品匹配的算法实践
京东图片搜索API基于图像识别技术,支持通过上传图片或图片URL搜索相似商品,提供智能匹配、结果筛选、分页查询等功能。适用于比价、竞品分析、推荐系统等场景。支持Python等开发语言,提供详细请求示例与文档。
|
算法 Python
Apriori算法的Python实例演示
经过运行,你会看到一些集合出现,每个集合的支持度也会给出。这些集合就是你想要的,经常一起被购买的商品组合。不要忘记,`min_support`参数将决定频繁项集的数量和大小,你可以根据自己的需要进行更改。
576 18
|
算法 前端开发 机器人
一文了解分而治之和动态规则算法在前端中的应用
该文章详细介绍了分而治之策略和动态规划算法在前端开发中的应用,并通过具体的例子和LeetCode题目解析来说明这两种算法的特点及使用场景。
一文了解分而治之和动态规则算法在前端中的应用
|
存储 算法 大数据
Apriori算法和Eclat算法差异
Apriori算法和Eclat算法差异
335 4
|
SQL 算法 Serverless
B端算法实践问题之使用concat_id算子获取用户最近点击的50个商品ID如何解决
B端算法实践问题之使用concat_id算子获取用户最近点击的50个商品ID如何解决
278 1
|
数据可视化 算法 前端开发
基于python flask+pyecharts实现的中药数据可视化大屏,实现基于Apriori算法的药品功效关系的关联规则
本文介绍了一个基于Python Flask和Pyecharts实现的中药数据可视化大屏,该系统应用Apriori算法挖掘中药药材与功效之间的关联规则,为中医药学研究提供了数据支持和可视化分析工具。
809 2
|
10月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
804 0
|
10月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
504 2

热门文章

最新文章