共享单车数据可视化分析(PythonSeaborn)

Python051

共享单车数据可视化分析(PythonSeaborn),第1张

项目数据来源于kaggle项目 Bike Share Demand ,使用Python对数据进行了可视化分析:

1. 提出问题

影响共享单车租用数量的因素有哪些?影响程度如何?

2. 理解数据

变量说明:

3.数据清洗

1)数据预处理:数据完整无缺失值

2)特征工程:从datetime中提取年、月、日、时、星期等时间信息

4. 可视化分析

1)单车使用量在天气维度上的分析(天气、温度、湿度和风速相关性)

可以看到,整体租车量受天气影响较为明显,极端的天气租车数量减少。

4级天气看起来有些异常,于是统计数据条目:

可以看到,4级天气只有1条数据记录,这种极端天气情况出现的数据极少。

温度和使用量有正相关关系,湿度与使用量有负相关关系,风速和使用量几乎不相关。

由图像可看出,使用量与温度、湿度和风速的关系,相关性有限。

2)单车使用量在时间维度上的分析(月份、季节、时间、星期等相关性)

总量来看,节假日和周末/工作日的租车数量基本相同。

图1可以看出2012年共享单车的使用量高于2011年,消费人群增加了1.5~2倍。两年内租车量随月份变化的趋势相同,6、7、8月有明显的高需求。

图2可以看出租车时间高峰为上午7-8点,下午5-6点,符合上下班通勤的时间范围。季节上看,春天的租车辆明显少于其它三个季节。

图3可以看出工作日租车辆主要为上下班时间,周末租车辆主要集中在10am-4pm之间。

3)单车使用量与注册用户/非注册用户的相关性

注册人数使用量明显高于非注册人数,

非会员casual主要是周末出行,为了游玩会员registered主要是为了周一到周五上班。

5. 总结

对于零基础学习Python开发的小伙伴,小蜗这里整理了一份Python全栈开发学习路线,可参照这份大纲来进行学习~

第一阶段:专业核心基础

阶段目标:

1. 熟练掌握Python的开发环境与编程核心知识

2. 熟练运用Python面向对象知识进行程序开发

3. 对Python的核心库和组件有深入理解

4. 熟练应用SQL语句进行数据库常用操作

5. 熟练运用Linux操作系统命令及环境配置

6. 熟练使用MySQL,掌握数据库高级操作

7. 能综合运用所学知识完成项目

知识点:

Python编程基础、Python面向对象、Python高级进阶、MySQL数据库、Linux操作系统。

1、Python编程基础,语法规则,函数与参数,数据类型,模块与包,文件IO,培养扎实的Python编程基本功,同时对Python核心对象和库的编程有熟练的运用。

2、Python面向对象,核心对象,异常处理,多线程,网络编程,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。

3、类的原理,MetaClass,下划线的特殊方法,递归,魔术方法,反射,迭代器,装饰器,UnitTest,Mock。深入理解面向对象底层原理,掌握Python开发高级进阶技术,理解单元测试技术。

4、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,PDBC,深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Python后台开发打下坚实基础。

5、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境配置,Docker,Shell编程Linux作为一个主流的服务器操作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。

第二阶段:PythonWEB开发

阶段目标:

1. 熟练掌握Web前端开发技术,HTML,CSS,JavaScript及前端框架

2. 深入理解Web系统中的前后端交互过程与通信协议

3. 熟练运用Web前端和Django和Flask等主流框架完成Web系统开发

4. 深入理解网络协议,分布式,PDBC,AJAX,JSON等知识

5. 能够运用所学知识开发一个MiniWeb框架,掌握框架实现原理

6. 使用Web开发框架实现贯穿项目

知识点:

Web前端编程、Web前端高级、Django开发框架、Flask开发框架、Web开发项目实战。

1、Web页面元素,布局,CSS样式,盒模型,JavaScript,JQuery与Bootstrap掌握前端开发技术,掌握JQuery与BootStrap前端开发框架,完成页面布局与美化。

2、前端开发框架Vue,JSON数据,网络通信协议,Web服务器与前端交互熟练使用Vue框架,深入理解HTTP网络协议,熟练使用Swagger,AJAX技术实现前后端交互。

3、自定义Web开发框架,Django框架的基本使用,Model属性及后端配置,Cookie与Session,模板Templates,ORM数据模型,Redis二级缓存,RESTful,MVC模型掌握Django框架常用API,整合前端技术,开发完整的WEB系统和框架。

4、Flask安装配置,App对象的初始化和配置,视图函数的路由,Request对象,Abort函数,自定义错误,视图函数的返回值,Flask上下文和请求钩子,模板,数据库扩展包Flask-Sqlalchemy,数据库迁移扩展包Flask-Migrate,邮件扩展包Flask-Mail。掌握Flask框架的常用API,与Django框架的异同,并能独立开发完整的WEB系统开发。

第三阶段:爬虫与数据分析

阶段目标:

1. 熟练掌握爬虫运行原理及常见网络抓包工具使用,能够对HTTP及HTTPS协议进行抓包分析

2. 熟练掌握各种常见的网页结构解析库对抓取结果进行解析和提取

3. 熟练掌握各种常见反爬机制及应对策略,能够针对常见的反爬措施进行处理

4. 熟练使用商业爬虫框架Scrapy编写大型网络爬虫进行分布式内容爬取

5. 熟练掌握数据分析相关概念及工作流程

6. 熟练掌握主流数据分析工具Numpy、Pandas和Matplotlib的使用

7. 熟练掌握数据清洗、整理、格式转换、数据分析报告编写

8. 能够综合利用爬虫爬取豆瓣网电影评论数据并完成数据分析全流程项目实战

知识点:

网络爬虫开发、数据分析之Numpy、数据分析之Pandas。

1、爬虫页面爬取原理、爬取流程、页面解析工具LXML,Beautifulfoup,正则表达式,代理池编写和架构、常见反爬措施及解决方案、爬虫框架结构、商业爬虫框架Scrapy,基于对爬虫爬取原理、网站数据爬取流程及网络协议的分析和了解,掌握网页解析工具的使用,能够灵活应对大部分网站的反爬策略,具备独立完成爬虫框架的编写能力和熟练应用大型商业爬虫框架编写分布式爬虫的能力。

2、Numpy中的ndarray数据结构特点、numpy所支持的数据类型、自带的数组创建方法、算术运算符、矩阵积、自增和自减、通用函数和聚合函数、切片索引、ndarray的向量化和广播机制,熟悉数据分析三大利器之一Numpy的常见使用,熟悉ndarray数据结构的特点和常见操作,掌握针对不同维度的ndarray数组的分片、索引、矩阵运算等操作。

3、Pandas里面的三大数据结构,包括Dataframe、Series和Index对象的基本概念和使用,索引对象的更换及删除索引、算术和数据对齐方法,数据清洗和数据规整、结构转换,熟悉数据分析三大利器之一Pandas的常见使用,熟悉Pandas中三大数据对象的使用方法,能够使用Pandas完成数据分析中最重要的数据清洗、格式转换和数据规整工作、Pandas对文件的读取和操作方法。

4、matplotlib三层结构体系、各种常见图表类型折线图、柱状图、堆积柱状图、饼图的绘制、图例、文本、标线的添加、可视化文件的保存,熟悉数据分析三大利器之一Matplotlib的常见使用,熟悉Matplotlib的三层结构,能够熟练使用Matplotlib绘制各种常见的数据分析图表。能够综合利用课程中所讲的各种数据分析和可视化工具完成股票市场数据分析和预测、共享单车用户群里数据分析、全球幸福指数数据分析等项目的全程实战。

第四阶段:机器学习与人工智能

阶段目标:

1. 理解机器学习相关的基本概念及系统处理流程

2. 能够熟练应用各种常见的机器学习模型解决监督学习和非监督学习训练和测试问题,解决回归、分类问题

3. 熟练掌握常见的分类算法和回归算法模型,如KNN、决策树、随机森林、K-Means等

4. 掌握卷积神经网络对图像识别、自然语言识别问题的处理方式,熟悉深度学习框架TF里面的张量、会话、梯度优化模型等

5. 掌握深度学习卷积神经网络运行机制,能够自定义卷积层、池化层、FC层完成图像识别、手写字体识别、验证码识别等常规深度学习实战项目

知识点:

1、机器学习常见算法、sklearn数据集的使用、字典特征抽取、文本特征抽取、归一化、标准化、数据主成分分析PCA、KNN算法、决策树模型、随机森林、线性回归及逻辑回归模型和算法。熟悉机器学习相关基础概念,熟练掌握机器学习基本工作流程,熟悉特征工程、能够使用各种常见机器学习算法模型解决分类、回归、聚类等问题。

2、Tensorflow相关的基本概念,TF数据流图、会话、张量、tensorboard可视化、张量修改、TF文件读取、tensorflow playround使用、神经网络结构、卷积计算、激活函数计算、池化层设计,掌握机器学习和深度学习之前的区别和练习,熟练掌握深度学习基本工作流程,熟练掌握神经网络的结构层次及特点,掌握张量、图结构、OP对象等的使用,熟悉输入层、卷积层、池化层和全连接层的设计,完成验证码识别、图像识别、手写输入识别等常见深度学习项目全程实战。