• 数据科学中的开源软件工具


    本文在Creative Commons许可证下发布。

    写此系列文的目的是探讨数据领域全栈的解决方案,借助于开源软件来摆脱传统厂商的绑架,而放眼国内的讨论也不是非常多,人云亦云的比较多。

    数据科学,“Data Scientist”自2008年DJ Patial和 Jeff Hammerbacher把他们在LinkedIn和FaceBook的工作职责定义为“数据科学家”的那段时期开始,数据科学开始在业界流行起来。她涉及到三个主要的领域即统计学、计算机科学、行业知识及这三个领域交叉产生的三个领域。

    (1)、统计学

             数据分析最重要的目的是研究过去和推断未来,所有对于未知的推断都基于历史数据和各种假设,统计之所以在这个框架中处于核心的位置,就在于统计学的思维方式:统计学建模的前提是对真实的世界提出假设,然后通过模型来描述,通过数据来支持或者否定,一旦有新的模型能取代旧的模型,就能更好的分析这个真实的世界。如果脱离数据或者真实的世界去单纯的研究统计的模型,实质上就成了数学的分支,并不是统计学的目的。数学的方法和数学公式是统计学科学性的保证,但是,只有来自于数据,基于归纳来模拟真实世界的统计学才是和人靠经验做决策是相似的。在这个领域目前最专业的统计软件是SAS,如果不考虑成本那么作为统计软件来说没有任何其他的缺点。虽然其编程方式非常古老而且不灵活,但传统的统计不需要编程。

    (2)、计算机科学

             计算机科学最主要的研究对象不是数据,在行业中最重要的目的也不是数据分析。计算机科学对于数据分析领域最大的帮助是提供了分析的工具。不论是统计软件还是各类分析系统,都是通过计算机编程实现的。所以,实际上,数据科学最核心的思想基础来自于统计学,而数据科学中最重要的技能来自于计算机。在计算机应用到数据分析领域时,最好的选择是Fortran,不仅是性能的原因,很多分析和计算的库都是用Fortran编写。

    (3)、行业知识

             这里指的是行业里的分析经验,专指不依赖于计算机程序和统计模型的分析经验。很多传统的分析师,比如:商务分析师和财务分析师,在对领域深入理解的基础上,也能深入的理解数据发现规律。当然,没有计算机和统计背景,沦为平庸的可能性比较大。

             在这里,打个比方来形容三者的关系:统计学好比武侠小说中内功,决定了一个习武者的上限。计算机技术就好比武功招式,决定了此时的你有多强,而行业知识就好比实战经验,决定了与人掐架时能不能赢。

             在这个领域最好的软件工具是Excel,在不需要专业的计算机技能和统计背景的条件下将能实现的的工作做到极致,如果掌握了VBA语言甚至可以直接成为数据科学家。

    (4)、机器学习

    统计与计算机的结合产生了一个领域是机器学习。之所以有这样的局面出现,传统的统计学界比较保守,过于关注模型本身,对于模型的理论性要求又过于严格,这样就导致很多基于算法的模型很难发表在统计学的期刊上,更多的是发表在工程、计算机等非统计的应用期刊上。她同时要求强大的编程能力和深厚的数学和统计背景,但是应用模型会非常简单,不需要象使用统计模型那样需要理解所有参数的含义和检验结果。(实际上机器学习的模型中很多参数也没有办法理解)。

    在这个领域目前最好的工具是Python,作为计算机语言比R要完美许多,除了统计分析和图形可视化以外,R能做的Python可以做的更好,但是,它最大的缺点是非计算机背景的人不容易上手,而机器学习恰好不看重行业知识,重视计算机技能,工程应用中弱化数学和统计的能力。

    (5)、传统数据分析

             传统数据分析就是统计学和行业知识的结合。这是数据分析最广阔的应用领域,也是早期统计学专业的毕业生的主要就职空间。主流的职位就叫“数据分析师”。如果我们非要在我文中提到的6个领域找出一个最能接替数据科学家的类别,那么非“数据分析师”莫属,因为传统的数据分析师除了编程能力有所欠缺外,最重要的特征与数据科学家是没有分别的,可以直接使用统计软件的图形化界面也可以进行很多分析,不具备编程能力只是在一些新的领域和对于一些新的方法难以处理,容易受制约,但是对于传统的分析领域是不存在任何问题的。

             在这个领域目前来说,最方便的工具软件还是SPSS,用户也是众多,其图形化操作的方式非常容易上手。

    (6)、商业智能

             商业智能就是计算机科学与行业知识的结合。有个笑话就是直指这个领域的弱点。

    “…我是搞数据分析的,学会了如何从DW中用SQL对于数据ETL并建立了Cube。然后算啊算,得出结论:今年2月营业收入远远小于其他月份。我试图用SPSS、SAS中的数据挖掘模型找出原因但至今无果。扫地阿姨弱弱的说“2月份是春节,所有公司半个月无人上班”….”

    可以看出这个领域会被认为是“危险领域”,传统BI的思维容易忽视应用背景而只关注方法的实现。

             这个领域是商业解决方案扎堆的地方,最流行的BI工具主要是SAP、Oracle、IBM等大厂商旗下的产品。

             回到数据科学工具的选择,数据科学最重要的目的是数据分析和建模,需要掌握一门编程语言,笔者认为最好的工具是R。R中最宝贵的是它的统计思维和数据思维,虽然很多其他的语言也擅长分析和处理数据,甚至性能更好、语法更清晰。但是,R直指统计的核心,可以很方便的从模型的角度来思考数据,在各行各业分析师(而不是程序员)的贡献下,其包含的分析方法也是几乎是无穷无尽的。R非常容易入门,尤其是适合传统统计背景的数据分析师学习,如果目标是数据科学家而不是计算机程序专家的话,R是一个最好的选择。

  • 相关阅读:
    CMake及交叉工具编译链的安装使用
    linux下查询进程占用的内存方法总结
    彻底理解协程
    CMake之Option使用简介
    【C++】C++的工具库
    CMAKE 调用交叉编译器(CMAKE使用)
    Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
    良好的API接口
    Saga是什么? 分布式事务的挑战
    负负得正
  • 原文地址:https://www.cnblogs.com/evilqliang/p/6835700.html
Copyright © 2020-2023  润新知