数据科学部门如何使用Python和R组合完成任务

概述

和那些数据科学比赛不一样,在真实的数据科学中,咱们可能更多的时间不是在作算法的开发,而是对需求的定义和数据的治理。因此,如何更好的结合现实业务,让数据真正产生价值成了一个更有意义的话题。python

数据科学项目的完整流程一般是这样的五步骤:
需求定义=》数据获取=》数据治理=》数据分析=》数据可视化jquery

1、需求定义

需求定义是数据科学项目和数据科学比赛的最大不一样之处,在真实情景下,咱们每每对目标函数、自变量、约束条件都并不清晰。须要经过访谈、论文、文档等等形式对问题进行系统地分析,将实际问题量化为能够解决的抽象问题,肯定自变量、约束条件以及目标函数。在真实情景下,需求每每是多变化的,临时的,如何把握好需求成为了整个项目后续推动的关键要素。web

2、数据获取

数据获取的形式主要包括:算法

  1. 现有数据库的调用数据库

  2. 现有API的调用django

  3. 自行设计的爬虫websocket

在数据获取中,比较重头的一项就是爬虫的开发,这里 R 虽然开发了 rvest 包, 不过比起 django-scrapy 这样完整的爬虫调度系统不由黯然失色,因此在第一步,我建议使用Python作爬虫的开发。app

3、数据治理

数据治理第一步就是数据的定义,而数据的定义经过 Python的各类ORM框架和admin系统,能够很是出色地完成数据仓库的定义和管理。经过 airflow 咱们又能够很好的对ETL过程作全流程的监控。
因此,在第二步,我依然建议使用Python做为数据治理的工具。echarts

4、数据分析

数据分析首先涉及的就是探索式分析,这一点正是R语言的强项,适宜于各类强大的数据可视化,咱们能够利用R快速了解数据的总体特性,经过 data.table 和 Rcpp 咱们也能够快速提高 R 的单机性能,省去了Cython写wrapper的尴尬。而Python 因为须要更多约束的分析操做,在探索式分析中相比 R 少了几分灵活性。至少是矩阵乘法我更愿意接受直观的 %*%, 而不是np.dot()。因此,第三步,我建议使用 R 完成数据的分析工做。框架

5、数据可视化

数据可视化原本是JS的天下,可是感谢 R语言生态中热衷于给JS作封装的开发者们,如今市面上绝大部分在BI领域会涉及到的JS库都已经被 R 语言封装好了,好比 echarts、highcharts、rcharts、d3等等。另外一方面,经过 shiny, 咱们快速极大地简化了BI构建的流程,跳过底层jquery、boostrap、websocket等等细节,直接针对业务场景构建BI系统,帮助咱们在快速构建BI原型上扫清障碍,而不是在Tornado里面辛苦地改template。显然,使用 R 作数据可视化能够大大减小咱们的开发时间。因此,第四部,我也建议使用 R 完成数据可视化的工做。

总结

这样正常数据科学项目作下来,咱们须要交付一个爬虫管理系统(django-scrapy)、一个数据仓库管理系统(django)、一个流程监控系统(airflow)、一个BI分析系统(shiny),真正完成对整个数据科学项目的可监控、可维护,而后在这个过程当中咱们不断去迭代咱们的数据产品,优化流程,完善模型,最终实现反哺业务。

总结起来,将Python做为数据科学的基础,而R做为上层建筑是一个不错的解决方案,固然这一切都创建在数据开发人员具备过硬的开发技能,不然Python和R的随意性会酿成巨大的惨案。

参考资料

相关文章
相关标签/搜索