本文讲解的是机器学习中一个算法的应用:关联规则分析
整个故事从一张校园卡开始。相信小伙伴们都用过校园卡,它是一种其个人身份认证、校园消费、数据共享等多功能于一体的校园信息集成与管理系统。在它里面存储着大量的数据,包含:学生消费、宿舍门禁、图书馆进出等。
本文使用的是南京某高校学生一卡通在2019年4月1-20号的消费明细数据,从统计可视化分析、关联规则分析,发现学生一卡通的使用情况和学生当中的情侣、基友、闺蜜、渣男和单身狗等有趣信息。
使用的数据集地址如下:https://github.com/Nicole456/Analysis-of-students-consumption-behavior-on-campus
导入数据
import pandas as pd
import numpy as np
import datetime
import plotly_express as px
import plotly.graph_objects as go
1、数据1:每个学生的校园卡基本信息
2、数据2:校园卡每次消费和充值的明细数据
3、数据3:门禁明细数据
数据大小
In [8]:
print("df1: ", df1.shape)
print("df2: ", df2.shape)
print("df3: ", df3.shape)
df1: (4341, 5)
df2: (519367, 14)
df3: (43156, 6)
缺失值
# 每列缺失值
df1.isnull().sum()
# 每列的缺失值占比
df2.apply(lambda x : sum(x.isnull())/len(x), axis=0)
人数对比
不同性别人数
不同专业人数
In [16]:
df5 = df1["Major"].value_counts().reset_index()
df5.columns = ["Major","Number"]
df5.head()
不同专业不同性别人数
In [18]:
df6 = df1.groupby(["Major","Sex"])["CardNo"].count().reset_index()
df6.head()
fig = px.treemap(
df6,
path=[px.