python+大数据校园卡数据分析 计算机竞赛

news2024/10/6 8:36:28

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 基于yolov5的深度学习车牌识别系统实现

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate


1 课题介绍

近年来,大数据的受关注程度越来越高。如何对大数据流进行抽取转换成有用的信息并应用于各行各业变得越来越重要。如今,校园一卡通系统在高校应用十分广泛,大部分高校主要利用校园一卡通对校园中的各类消费阅、补助领取等进行统一管理。通过数据分析算法,对大学生校内消费记录进行整理、分类、预测,从而整体反应学生在校消费情况,形成量化的评判标准,同时也为今后的贫困生资助管理工作提供可靠的数据支持,辅助完成贫困生的相关工作。

2 数据预处理

在进行数据挖掘或者数据分析之前,需要对“脏数据” 数据进行数据预处理,一般采用数据清理、数据集成、数据变换等方式,已获得更好的分析效果。

2.1 数据清洗

由于数据库中有着大量的数据表,我们获取到的数据表中会存在着异常数据,如数据不合法与常识不符,同一个字段属性值来源于多张数据表且数值不一样等。数据预处理主要去处可忽略的字段、忽略空缺记录、可处理噪声的数据、可删除的数据等。由于部分校园卡用户,如教职工、研究生等,消费时具有很强的随机性和离散型。同时,为了保护隐私,对姓名、学号等属性要做脱敏和隐私处理。

2.2 数据规约

预处理后的数据不一定适合直接使用,因此需要对数据进行集成和变换,将多个数据库中提取出的数据项整合到一起,组成新的数据集环境,并经过详细对比和筛选解决数据不一致和数据冗余等问题。为了适合分析,我们要对数据进行离散化和概念分层处理。

3 模型建立和分析

通过建立消费数据分析模型,对学校校园卡消费行为进行分析,总结学校学生

​ #1.总体消费情况
​ #2.不同专业、性别的学生与消费能力的关系
​ #3.不同性别的学生与消费项目的关系
​ #4.消费时间的特征分析
​ #5.消费地点与门禁通过地点的关系分析
​ #6.学生消费特征分层模型

    import matplotlib.pyplot as plt
    expen_rec = pd.read_csv(r'C:\Users\River\Desktop\校园卡数据\expen_rec.csv',encoding='gbk')
    student = pd.read_csv(r'C:\Users\River\Desktop\校园卡数据\student.csv',encoding='gbk')
    access = pd.read_csv(r'C:\Users\River\Desktop\校园卡数据\access.csv',encoding='gbk')
    all_data1 = pd.merge(expen_rec,student,on ='校园卡号',how='left')
    all_data1.head()

在这里插入图片描述

3.1 不同专业、性别的学生与消费能力的关系

    
    from pylab import *
    plt.rcParams['font.sans-serif']=['SimHei']
    %matplotlib inline
    total = con_sum.groupby(['性别'])[['消费金额']].sum()
    total1= con_sum.groupby(['性别'])[['消费金额']].count()
    plt.subplot(121)
    plt.pie(total['消费金额'],labels=total.index,autopct='%2.f%%')
    plt.title('男女生消费总金额对比')
    plt.subplot(122)
    plt.pie(total1['消费金额'],labels=total1.index,autopct='%2.f%%')
    plt.title('男女生人数对比')
    plt.show()

在这里插入图片描述

    fig1 = plt.figure(num =1, figsize=(8,4))
    plt.title('各消费等级人数')
    plt.xlabel('消费等级')
    x1 =['(0, 100] ','(100, 150]','(150, 200] ','(200, 250]','(250, 300]','(300, 350]','(350, 400]','(400, 500]','(500, 3000]']
    y1 = list(table1.values)
    y2 =list(table2.loc[('女',slice(None))].values)
    y3 =list(table2.loc[('男',slice(None))].values)
    plt.plot(x1,y1,label='总体')
    plt.plot(x1,y2,label='女生')
    plt.plot(x1,y3,label='男生')
    plt.legend(loc=2)
    plt.show()

在这里插入图片描述

    #分析各专业总消费金额排列
    fig2 = plt.figure(num =2, figsize=(14,6))
    plt.title('各专业总消费金额排列')
    plt.xlabel('专业名称')
    x1=table3.index
    y1=table3['消费总金额']
    plt.bar(x1,y1)
    plt.xticks(x1,x1,rotation=45)
    for a,b in zip(x1,y1):
        plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=9)
    plt.show()

在这里插入图片描述

小结:

1.该校18级学生的人均每月校园卡消费295.96元;

2.女生人数占比59%,总消费额占比56%,消费总金额与性别差异不大;

3.从消费金额级区间上看,学生的总体消费金额主要在[200,500]的区间内,但男女生消费存在明显差异:女生消费金额在[200-350]区间内人数明显高于男生,但随着增加而下降,而男生在400以上的区间内的人数高于女生。男生对校园卡消费方式差异较大,一般不使用或者经常使用。女生多数选择轻度使用。

4.从各专业消费总金额上看机械制造专业最高,机械制造(学徒)专业最低。但结合各专业的人均消费分析,各专业的人均消费差异很小,标准差仅为42.8。人均消费最高的机械制造(学徒)专业因为人数最少仅为14人,对总体数据影响较小。可以得出:学生的校园卡消费能力与专业无明显区别。

3.2 消费时间的特征分析

    
    fig7 = plt.figure(num =7, figsize=(8,4))
    mon1= time_tab.groupby(['日期'])[['消费金额']].count()
    mon2= time_tab1.groupby(['日期'])[['消费金额']].count()
    mon3= time_tab2.groupby(['日期'])[['消费金额']].count()
    plt.title('月度消费次数趋势分析')
    plt.xlabel('日期')
    x1 = list(mon1.index)
    y1 = list(mon1.values)
    y2 =list(mon2.values)
    y3 =list(mon3.values)
    plt.plot(x1,y1,label='总体')
    plt.plot(x1,y2,label='女生')
    plt.plot(x1,y3,label='男生')
    plt.legend(loc=2)
    plt.show()
    #除个别天数外,女生均高于男生,每周之间趋势相似

在这里插入图片描述

    fig8 = plt.figure(num =8, figsize=(8,4))
    wk1= time_tab.groupby(['星期'])[['消费金额']].count()
    wk2= time_tab1.groupby(['星期'])[['消费金额']].count()
    wk3= time_tab2.groupby(['星期'])[['消费金额']].count()
    def autolabel(rects):
        for rect in rects:
            height = rect.get_height()
            plt.text(rect.get_x()+rect.get_width()/2.-0.2, 1.03*height, '%s' % float(height))
    plt.title('月度消费次数趋势分析')
    plt.xlabel('星期')
    y1 = wk2['消费金额']
    y2 = wk3['消费金额']
    x1=range(len(y1))
    x2=[i +0.35 for i in x1]
    a=plt.bar(x1,y1, width=0.3,label='女生',color='blue')
    b=plt.bar(x2,y2, width=0.3,label='男生',color='green')
    autolabel(a)
    autolabel(b)
    plt.legend()
    plt.xticks(x1,list(wk1.index),rotation=45)
    plt.show()
    #周一至周三消费次数较高,男女生在一周内的消费频率的波动没有明显差异

在这里插入图片描述

1.从一个月的每天的消费次数上看,除个别天数男女生消费次数相近,多大多数天数的女生的消费次数高于男生,且每周之间趋势相似,可以得出学生日常的消费习惯比较稳定;

2.从每周的消费次数汇总上看,周一至周三消费次数较高,并且逐步下降,周末为消费次数最低的时候。男女生在一周内的消费频率的波动趋势相同,没有明显差异;

3.从每天的消费的时间段分析上看,周末的刷卡消费次数为平常的12%。食堂可以根据数据情况,适当安排休息,减少人力成本浪费;

4.平常时间的早、中、晚餐的用餐时间集中在7点、11点、17-18点时间段。周末消费的时间相对平缓,早餐的高峰时间会延后到8点时间段,且持续有人员消费,中餐的用餐时间也会有部分后延到12点的时间段。晚餐时间则会部分提前17点的时间段进行,需要提前做好食堂的准备事项。

4 Web系统效果展示

以上是校园卡分析的部分过程,我们还可以做成web系统来展示。效果如下:

4.平常时间的早、中、晚餐的用餐时间集中在7点、11点、17-18点时间段。周末消费的时间相对平缓,早餐的高峰时间会延后到8点时间段,且持续有人员消费,中餐的用餐时间也会有部分后延到12点的时间段。晚餐时间则会部分提前17点的时间段进行,需要提前做好食堂的准备事项。

Web系统效果展示

以上是校园卡分析的部分过程,我们还可以做成web系统来展示。效果如下:

在这里插入图片描述

在这里插入图片描述

5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1091209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.MySQL数据类型详解

个人主页:Lei宝啊 愿所有美好如期而遇 目录 1.数据类型分类 2.数值类型 (1).tinyint,smallint类型等 (2)bit类型 (3)小数类型 1).float 2).decimal 3.字符串类型 (1)char (2)varchar (3)char和varchar比较 (4)日期和时间类型 (5)enum和se…

Vue3<script setup>语法糖下,实现父子组件通信以及数据监听。

在Vue3的script setup语法糖中,没有办法通过Vue2的ref、props、parent、中央时间总线等等众多方法,通过this指针简单的实现父子组件的通信,网络上也很少有关于script setup语法糖的相关教程,所以决定自己写一个详细教程&#xff0…

创建IDEA模板

将常用的配置文件内容、模板框架等放到IDEA的模板中保存,方便以后使用。以mybatis-config.xml和一个映射文件为例(这是我自己学习SSM时用到的,后面学习SpringBoot时发现配置都只需要写到application.yml中就ok了,配置变得非常简单…

07_03文件系统怎么玩的

文件系统 Linux将文件系统分为了两层:VFS(虚拟文件系统)、具体文件系统,如下图所示: VFS(Virtual Filesystem Switch)称为虚拟文件系统或虚拟文件系统转换,是一个内核软件层&#…

【计算机网络】IP协议详解

文章目录 一、引入 二、简单认识IP协议 2、1 IP协议基本概念 2、2 IP协议报文格式 2、3 分片与组装 2、3、1 MTU 与 MSS 2、4 网段划分 2、4、1 简单理解路由 2、4、2 IP地址 2、4、3 IP地址的划分 2、4、4 CIDR(无类别域间路由) 2、4、5 特殊的IP地址 …

磁盘非跨盘访问算法实现

1. 背景说明 本算法基于已将磁盘分布合并并排序为升序线性表。实现示例为:磁盘扇区大小:32(可自定义),待拆分磁盘内存: [0 - 50],[60 - 100](可增加)。示意图如下&#x…

【电机控制】FOC电机控制

FOC(Field-Oriented Control,磁场定向控制)是一种电机控制策略,又称矢量控制,是通过控制变频器输出电压的幅值和频率控制三相直流无刷电机的一种变频驱动控制方法。 FOC 的实质是运用坐标变换将三相静止坐标系下的电机…

什么是 CSRF 、原理及其解决方式

什么是 CSRF ? 跨站请求伪造(CSRF,Cross-site request forgery),也称为 XSRF,Sea Surf 或Session Riding,是一个攻击向量,它欺骗 Web 浏览器在登录用户的应用程序中执行不需要的动作…

如何处理前端国际化和本地化?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

“比特币市场风起云涌:第三季度报告揭示表现和未来趋势“

要点: 比特币的季度价格表现较差,为 -11.5%,但今年迄今为止的表现仍优于大多数资产类别; 截至撰写本文时,上半年推动比特币上涨的美国购买力已完全减弱; 交易量、流动性、波动性和搜索趋势均继续…

idea安装汉化插件

settings plugins 插件搜索chinese 重启 成功

第五十五章 学习常用技能 - 删除存储的数据

文章目录 第五十五章 学习常用技能 - 删除存储的数据删除存储的数据重置存储Storage浏览表格 第五十五章 学习常用技能 - 删除存储的数据 删除存储的数据 在开发过程中,可能需要删除某个类的所有现有测试数据,然后重新生成它(例如&#xff…

基于SSM的校园音乐平台系统

基于SSM的校园音乐平台系统~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录界面 管理员界面 歌手管理 歌曲管理 摘要 校园音乐平台系统(Campus Mu…

三、RocketMQ的JAVAAPI的基础概念

消息(Message) 生产者和消费者数据流转的基础数据模型,主要属性有 字段名默认值必要性说明Topicnull必填消息所属topic的名称Bodynull必填消息体Tagsnull选填消息标签,方便服务器过滤使用。目前只支持每个消息设置一个Keysnull选填代表这条消息的业务关…

飞花令游戏(Python)

飞花令是古时候人们经常玩一种“行酒令”的游戏,是中国古代酒令之一,属雅令。“飞花”一词则出自唐代诗人韩翃《寒食》中 春城无处不飞花 一句。行飞花令时选用诗和词,也可用曲,但选择的句子一般不超过7个字。 在《中国诗词大会》…

四、RocketMQ发送普通消息、批量消息和延迟消息

Producer发送普通消息的方式 1.同步发送消息 同步消息代表发送端发送消息到broker之后,等待消息发送结果后,再次发送消息 实现步骤 创建生产端,声明在哪个生产组注册NameServer地址构建Message实体,指定topic、tag、body启动…

论文阅读之《Learn to see in the dark》

Learning to See in the Dark-CVPR2018 Chen ChenUIUC(伊利诺伊大学厄巴纳-香槟分校) Qifeng Chen, Jia Xu, Vladlen Koltun Intel Labs(英特尔研究院) 文章链接:https://arxiv.org/pdf/1805.01934.pdfhttps://arxiv.org/pdf/1805.01934.p…

使用hugging face开源库accelerate进行多GPU训练(单机多卡)时,在保存模型结构的时候出现的问题

目录 问题描述问题分析问题解决 问题描述 我在保存模型结构的时候,先获取模型参数,然后再保存,代码如下: 图示代码是在训练主循环中的: 这种情况下会出现报错: nboundLocalError: UnboundLocalErrorloc…

计算机毕业设计选什么题目好?springboot 医院门诊在线预约挂号系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…