GithubHelp home page GithubHelp logo

wanghuihuilorna / schoolbigdataanalysis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from markwhitey/schoolbigdataanalysis

0.0 0.0 0.0 5.21 MB

此项目是对大学生的一卡通消费数据、图书借阅记录和图书馆门禁数据在spark集群的大数据框架环境之下进行聚类、关联分析,分析出学生的消费水平、生活规律、学习强度等聚类结果,以及将聚类结果进行FPGrowth关联分析得出学生聚类之间存在的关联性,此项目是使用scala语言,利用sparkSQL集合hive进行大数据分析

Perl 0.85% Shell 0.76% Scala 83.02% Java 15.37%

schoolbigdataanalysis's Introduction

SchoolBigDataAnalysis

介绍

此项目是对大学生的一卡通消费数据、图书借阅记录和图书馆门禁数据在spark集群的大数据框架环境之下进行聚类、关联分析,分析出学生的消费水平、生活规律、学习强度等聚类结果,以及将聚类结果进行FPGrowth关联分析得出学生聚类之间存在的关联性,此项目是使用scala语言,利用sparkSQL集合hive进行大数据分析。

系统结构设计

图中是对系统的结构设计,主要包括以下几个部分:(1)对分析数据的预处理;(2)对学生的行为聚类分析;(3)对学生的行为关联分析;(4)学生画像构建部分;(5)消费和借阅榜单统计部分;(6)可视化展示部分。

系统流程图

本系统主要流程是将学生的分析数据利用Sqoop工具从传统数据仓库中移到大数据的Hive数据仓库中,利用SparkSQL集成HiveSQL对数据进行预处理和统计、对处理好的数据进行学生行为聚类分析、学生行为关联分析、构建学生画像、统计分析实现榜单功能、最后对结果利用Echarts进行可视化展示,主要系统流程如图所示:

软件架构*

本项目使用IDEA+Maven+Spark+SparkSQL+Scala+Hadoop,大数据存储使用的是Hive数据仓库,使用SparkMlib机器学习库的算法进行学生行为分。 学生时空行为大数据分析系统——行为相似性分析分为两部分实现,一部分是学生时空行为大数据的分析处理部分,一部分是学生画像构建、消费和借阅榜单功能、可视化功能实现部分。 分析实现流程如图所示:

本文在大数据分析中的所有分析项如表所示:

分析项名称 数据源 需要的算法
消费水平聚类分析 一卡通数据源 K-Means
生活规律聚类分析 一卡通数据源 K-Means
学习强度聚类分析 图书借阅数据源 图书馆门禁数据源 K-Means
借阅书籍间的关联分析 图书借阅数据源 FP-Growth
借阅书籍类型间的关联分析 图书借阅数据源 FP-Growth
学生不同行为之间的关联分析 行为聚类分析结果数据源 FP-Growth

数据预处理

数据预处理属于分析功能需求,在大数据分析中数据预处理影响着数据分析的准确性、可信性。学生时空行为大数据分析的分析模块在对学生数据进行行为分析前,需要对学生行为数据进行预处理操作,以便能够筛选出无用的数据、脏数据、异常数据、空数据,选取2013级到2018级的本科生数据。 本系统的数据预处理包括一卡通消费行为数据、图书馆门禁记录数据、图书借阅记录数据。数据的预处理需求如下:

1)数据提取与迁移。将学生在学校的传统数据仓库中的数据迁移到大数据仓库中进行分析,在迁移中将不需要的字段、不在分析日期内的数据进行过滤剔除,进一步节省空间和加快分析时间。

2)图书借阅及门禁数据过滤。将迁移后的图书馆门禁进入数据、图书借阅记录数据的非本科数据、空数据、异常数据进行过滤,过滤出13级到18级学生的借阅和图书馆门禁数据、过滤出2015-09-01~2019-01-20年的借阅和图书馆门禁数据、删除学生多次重复借阅的同一本数据、删除学生一次刷卡进入的多条重复刷卡记录。

3)一卡通消费数据过滤。将迁移后的学生一卡通消费数据的非本科数据、空数据、异常数据进行过滤。过滤出13级到18级学生消费数据、过滤出2013-09-01~2018-1-20的消费数据。

4)空缺值处理。对于一卡通消费数据,直接将空值记录删除;对于图书借阅数据,记录中经常会由于设备和人工等问题造成某些图书借阅记录没有书名或某些借阅记录没有图书类别,可以将这些空缺值根据都修改为其他数据或根据情况给予填写。

5)数据转化。学生一卡通消费表中的消费描述是不具体的或不符合分析标准,需要将学生的用餐消费转化为早餐、晚餐、午餐消费、将学生的多条用水支出按照一定规则合并为一条用水支出记录。

6)消费数据统计。对于转化处理后的一卡通数据需要获取进行统计得到聚类、关联分析所需字段,统计后的字段有学号、用餐总金额、用餐总频次、早餐总金额、早餐频次、午餐总金额、午餐频次、晚餐总金额、晚餐频次、用水总金额、用水频次、购物总金额、购物频次。

7)门禁借阅数据统计。对转化处理后的图书借阅数据进行统计得到聚类分析所需的学号、借阅数量、借阅频次字段,得到关联分析所需的学号、中图法分类索引、读者每次借阅的图书项集;对于转化处理后的图书馆门禁数据进行统计得到聚类分析所需的学号、图书馆进入频次。

学生行为聚类和画像需求

学生时空行为大数据分析中的学生行为聚类分析主要包括一卡通消费行为数据分析和学生学习行为分析,需要将学生在学校期间的不同行为数据进行聚类,得出学生的群体特征。本文主要根据学生的行为数据对学生进行消费水平聚类分析、生活规律聚类分析、学习强度聚类分析,分析流程如图3-2所示,具体分析如下:

1)消费水平聚类。按照学生的消费总额和消费总频次这两个的分析维度进行学生的消费水平聚类分析。

2)生活规律聚类。将学生按照早餐频次、午餐频次、晚餐频次、用水频次、购物频次进行聚类分析,从中得出学生的生活规律特点。

3)学习强度聚类。将学生的进入图书馆的次数、图书馆借阅的书籍数量、借阅书籍的频次作为学生的学习强度,按照这三个维度聚类,从中得出学生的学习行为特点。

4)学生画像构建主要包括构建学生的行为特征画像和学生图书借阅特点画像。学生行为特征画像是依据学生的基本信息、学生的消费水平特征、学生生活规律行为特征、学生学习和借阅行为特征进行构建;学生图书借阅特点画像是依据学生已借阅数据进行构建。

学生行为聚类分析及画像构建流程图如图所示:

学生行为关联分析

学生行为关联分析是对学生行为聚类后的生活规律聚类、消费水平聚类、学习强度聚类进行关联分析,得出不同学生行为之间存在的相关项;利用图书借阅记录中的借阅图书和借阅图书类型数据进行关联分析,得出不同借阅图书和不同借阅图书类型之间存在的相关性,关联分析。分析流程如下图所示。对学生图书借阅记录中的图书类别进行关联分析,可以得出学校图书馆中哪些类别经常被学生借阅,图书馆管理者可以有针对地对管藏进行优化布局。

聚类分析图如图所示:

schoolbigdataanalysis's People

Contributors

markwhitey avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.