APP下载

基于Python的可视化数据分析平台设计与实现

2017-12-25严婷文欣秀赵嘉豪王家辉杜傲白瑞杰

计算机时代 2017年12期
关键词:数据分析可视化

严婷 文欣秀 赵嘉豪 王家辉 杜傲 白瑞杰

摘 要: 在大数据的时代背景下,考虑到与日俱增的数据分析需求以及传统数据分析工具的高门槛性、操作复杂性等问题,基于Python和Django框架设计了一个具备数据分析、案例交流、算法学习等功能的可视化数据分析平台,旨在帮助没有算法基础的普通用户快速进行数据分析,并迅速获取可视化的分析结果。该平台还可以作为数据挖掘课程的辅助教学工具以及数据分析的科普平台。

关键词: Python; 数据分析; 教学辅助; 可视化

中图分类号:G434 文献标志码:A 文章编号:1006-8228(2017)12-54-03

Design and implementation of visualized data analysis platform based on Python

Yan Ting1, Wen Xinxiu1, Zhao Jiahao1, Wang Jiahui1, Du Ao2, Bai Ruijie3

(1. School of Information Science and Engineering, East China University of Science and Technology, Shanghai 200237, China; 2. School of Resource and Environmental Engineering, East China University of Science and Technology; 3. School of Mechanical and Power Engineering, East China University of Science and Technology)

Abstract: In the big data era, taking into account the increasing demand for data analysis and the high threshold of traditional data analysis tools, operational complexity and other issues, a visualized data analysis platform with functions of data analyzing, case exchanging and algorithm learning is designed based on Python and Django framework to help ordinary users without algorithm base to do data analysis quickly and obtain visualized analysis results quickly. And the platform can also be used as an auxiliary teaching tool for data mining courses and a popular science platform for data analysis.

Key words: Python; data analysis; teaching aids; visualization

0 引言

随着云计算、物联网、社交网络等的兴起和数据库技术的成熟,社会中的各类数据正在以前所未有的速度增长。传统的数据处理方式难以发掘出海量数据中所隐藏的规律,因此我们需要借助编程语言和数据分析软件进行数据挖掘,采用算法建立恰当的模型,可视化地展示出数据中隐含的规律,从而为人们的生产生活、经济发展等提供决策和建议[1-2]。

但是,在数据分析需求与日俱增的同时,普通用户在进行数据分析和使用相关工具时也面临着诸多问题,比如较高要求的门槛、相关的知识储备、一定的学习成本以及必要的指導需求等。现有的专业数据分析软件又或多或少地存在着一些问题,例如:MATLAB安装文件就高达8G,运行环境要求高,不开源又使得费用非常昂贵;SPSS操作虽然方便,但是可扩展性非常弱,没法对算法进行改进;SAS非常强大,然而不开源外加版权控制非常严格[3]。此外,数据挖掘与处理是一门涉及数学、统计学、计算机科学等的课程,若没有经过实践操作与理论学习的结合,很难真正将其理解掌握并加以应用。

基于以上问题,本文详细描述了一个面向更广大普通用户的简单易用的可视化数据分析系统的开发过程,旨在使不具有完备数据分析能力、算法基础的用户能够快速上手进行数据分析。与此同时,系统也作为一个数据挖掘课程的辅助教学工具而投入实际教学之中,帮助学生清晰了解各类算法,融理论学习、动手操作、案例教学为一体,更好地学习数据挖掘及其应用。

1 可视化数据分析平台的设计

1.1 平台核心技术

本平台开发语言是Python,使用了Numpy,Matplotlib,Mysql-python等多个第三方模块撰写可配置的算法[4],并封装成函数作为I/O接口用以进行数据分析。系统的网站搭建采用B/S(Browser/Server)平台技术,使用HTML、CSS、JS实现网页展示,利用Django框架实现后台处理。用户可以在网站上选择相应的算法,输入想要分析的数据或上传相关csv文件就能得到使用Echarts可视化的分析结果。

1.2 平台结构和功能

平台主要包含三大功能模块:一是在线数据分析;二是案例系统;三是开源论坛。此外,为了便于用户使用,平台还提供了帮助中心。平台功能框架图如图1所示。

1.2.1 在线数据分析

在线数据分析主要包括探索性数据分析、数据预处理及挖掘建模。

⑴ 探索性数据分析:用户导入调查、观测所得的杂乱无章的初步数据,平台在尽量少的先验假定条件下进行处理,通过作图、制表等形式和方程拟合、计算某些特征量等手段,探索数据的结构和规律,如极差、均值、中位数、标准差、变异系数等。

⑵ 数据预处理:异常值检测指用户选择要检测异常值的文件,平台通过做出对应箱型图来直观反映原始数据的分布情况,并体现出异常值。缺失值处理指平台采用拉格朗日插值法对含有缺失值的文件进行处理,给出缺失值处的插值结果、原始数据与插值结果图。

⑶ 挖掘建模:平台采用了一系列算法(如:KNN、决策树、K-means、 PCA、线性回归等)对数据进行分析与处理,并进行可视化展示。比如:若用户需要进行聚类分析,只需选择待分析文件并在平台上输入想要将其聚为几类,平台即可利于K-means算法并结合文件中数据的维数,自动选择合适的图表,给出分析结果图以及必要的文字说明。若用户需要对数据进行降维处理,用户只需上传文件并输入原始数据维度和想要降至几维,系统利用PCA算法对数据进行降维处理,保留原始数据中的主要成分,给出原始数据结果图与相应的降维结果图。

1.2.2 案例系统

案例系统提供一个用户间进行案例分享与交流学习的平台。我们根据系统在学生中的试用反馈,撰写了一些和实际专业相结合的案例,例如: 在DNA分类中利用KNN算法;在杨氏模量实验中利用线性回归算法处理实验数据;在机械设计中利用拉格朗日插值快速检索数据。这些案例可以帮助用户更好地理解数据分析及其应用,从而利用本系统解决学习生活中的问题。每个案例的展示界面都有详细的问题背景描述以及相关数据。以DNA分类问题为例,其案例描述与数据分析结果如图2所示。

用户在学习相关案例之后,可以参照操作步骤动手实践,加深对数据分析及其应用的理解,并进一步挖掘自己的问题,同时可以撰写自己的案例进行交流。

1.2.3 开源论坛

平台提供所有算法的简介以及开源代码(如图3所示),用户可以在此进行算法的学习、交流,了解一些数据分析算法的具体实现,并可以在此基础上根据自己的需求进行二次开发,有效提高了学生学习的积极性。

2 平台特点与优势

传统的数据挖掘课程教学模式存在许多问题:偏重理论,概念性很强,学生理解起来较为困难;不同层次的学生接受知识所需的时间不同,很难在课堂教学中做到全面展开;现有数据分析工具较为专业,学习成本较高,不适合作为课程的常用实践操作工具。而利用本系统可以很好地解决上述问题。

⑴ 实现理论与实践的相结合。学生可以利用系统的数据分析模块,在学习完理论知识后,根据个人兴趣和需求选择不同算法进行数据挖掘的实践,操作简单、易于上手,可视化的分析结果清晰直观。每个学生掌握知识的程度不一致,学习该门课程的难易程度会不一致,可通过本系统让学生进行个性化学习,提高学生学习课程的积极性[5]。

⑵ 提供了与专业相关的应用案例。系统提供了与学生实际专业相关的案例,学生可以在理论知识的学习基础上,结合这些案例更好地理解数据挖掘的应用。也可以撰写上传自己的案例并与其他用户进行交流,在此过程中得到自我知识与能力的提升。

⑶ 提供了开源的算法代码。系统提供了所有算法的开源代码并附以注释,学生能够在理论学习之余,了解这些算法的具体实现,以及亲自运行这些代码;也可以對原有算法进行改进以解决自己的问题,真正使学习从理论层面过渡到应用层面,也可满足不同层次学生的探索需求。

3 结束语

大数据时代仍在演进,数据分析的影响及重要性也在拓宽和加深。本文介绍了一个面向普通用户的基于Python的简单易操作的可视化数据分析平台的开发过程,为数据分析软件开发人员提供了案例,也为数据挖掘相关的教学工作提供了辅助教学的思路,以期更好地推广数据分析。

下阶段的项目目标是:实现更多的数据算法,优化现有的算法设计,例如提高可配置性等;加强其在日常教学方面的应用;在系统上增设模块,利用算法分析学生平时的作业情况、答题情况、考试成绩等,帮助老师及学生自身更好地了解他们的学习情况。

参考文献(References):

[1] 张引,陈敏,廖小飞.大数据应用的现状与展望[J].计算机研究

与发展,2013.50:216-233

[2] 张良均,王路,谭立云,苏剑林.Python数据分析与挖掘实战[M].

机械工业出版社,2016.

[3] 吴升.大数据平台中数据分析工具的设计与实现[D].东南大

学硕士论文,2015.

[4] Wesley J.Chun. Python核心编程(第二版)[M].人民邮电出版

社,2012.

[5] 唐晓凤.数据挖掘课程教学改革探讨[J].中外企业家,

2016.27:190

猜你喜欢

数据分析可视化
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
新常态下集团公司内部审计工作研究
浅析大数据时代对企业营销模式的影响