日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法竞赛学习】数据分析达人赛2:产品关联分析

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法竞赛学习】数据分析达人赛2:产品关联分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

賽題背景

賽題以購物籃分析為背景,要求選手對品牌的歷史訂單數據,挖掘頻繁項集與關聯規則。通過這道賽題,鼓勵學習者利用訂單數據,為企業提供銷售策略,產品關聯組合,為企業提升銷量的同時,也為消費者提供更適合的商品推薦。

賽題數據

數據源:order.csv,product.csv,customer.csv,date.csv ,分別為訂單表,產品表,客戶表,日期表,使用天池實驗室打比賽即可直接在notebook中掛載數據源https://tianchi.aliyun.com/competition/entrance/531891/information

賽題任務

現在需要你使用關聯分析(比如Apriori算法) 挖掘訂單中的頻繁項集及關聯規則
說明:
1)頻繁項集、關聯規則的計算會用到支持度、置信度、提升度等指標,
2)頻繁項集:即大于最小支持度的商品或商品組合
3)關聯規則:在頻繁項集中,滿足最小置信度,或最小提升度的推薦規則
(這里最小支持度、最小置信度或最小提升度,選手可以根據數據集的特點自己設定)

import pandas as pd import time import matplotlib.pyplot as plt from matplotlib import font_manager import matplotlib #將pyplot字體轉化成中文 matplotlib.rcParams['font.family'] = 'Microsoft YaHei'df_product = pd.read_csv("./product.csv", encoding='gbk') df_date = pd.read_csv("./date.csv", encoding='gbk') df_customer = pd.read_csv('./customer.csv', encoding='gbk') df_order = pd.read_csv('./order.csv', encoding='gbk')df_order['訂單日期'] = pd.to_datetime(df_order['訂單日期']) df_order # 合并該天內該客戶購買的所有產品 df_order = df_order.groupby(['客戶ID', '訂單日期'])['產品名稱'].unique() df_order # 將所有交易追加到同一個交易列表中 transactions = [] for value in df_order:transactions.append(list(value)) # 采用efficient_apriori算法挖掘頻繁項集和頻繁規則,單個transaction定義為同一天內同一客戶ID購買的所有產品 from efficient_apriori import aprioristart = time.time() Itemsets, rules = apriori(transactions, min_support=0.03, min_confidence=0.05) print('頻繁項集:', Itemsets) print('關聯規則:', rules) end = time.time() print("用時:", end - start) # Step 6 繪制頻繁項集的條形圖,橫坐標為apriori算法輸出的頻繁項集,縱坐標為相應的頻數 Itemsets_pro = [] Itemsets_num = [] for key in Itemsets.keys():df1 = Itemsets[key]for key in df1:Itemsets_pro.append(key)Itemsets_num.append(df1[key]) # Step 7 將橫坐標轉化為字符串形式 Itemsets_pro_str = [] for i in Itemsets_pro:Itemsets_pro_str.append(','.join(list(i))) # Step 8 做出頻繁項集頻數分布柱狀圖 plt.figure(figsize=(12,9),dpi=100) plt.bar(Itemsets_pro_str, Itemsets_num) plt.xlabel('頻繁項集_產品名稱', fontsize=10) plt.ylabel('頻繁項集_出現頻數', fontsize=10) plt.title('頻繁項集頻數分布柱狀圖', fontsize=16) plt.xticks(rotation=90, fontsize=10) for a, b in zip(Itemsets_pro_str, Itemsets_num): plt.text(a, b + 0.005, str(b), ha='center', va='bottom', fontsize=7) plt.show()

總結

以上是生活随笔為你收集整理的【算法竞赛学习】数据分析达人赛2:产品关联分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。