像数据科学家一样思考:12步指南(上)《像数据科学家一样思考》

7-工程

下一步是建立统计软件。如果统计是分析和从数据中得出结论的框架,那么软件就是将这个框架付诸行动的工具。数据科学家必须为任何项目做出许多软件选择。如果你有一个喜欢的软件,这通常是一个不错的选择,但是有充分的理由去挑选别的东西。如果你是数据科学或统计软件的新手,或许很难找到一个起点。

电子表格和基于GUI的应用程序通常是执行任何类型数据分析的首选。特别是如果数据是表格形式的,例如CSV,并且数据不是太多,那么在电子表格中开始分析就很容易了。此外,如果你需要进行的计算并不复杂,那么电子表格甚至可以涵盖项目的所有软件需求。这里常用的软件工具包括Excel、SPSS、Stata、SAS和Minitab。学习这些中级工具之一的编程语言可能是学习真正的编程语言的一个很好的一步,这些语言本身就非常有用。特别是SAS在统计行业中拥有广泛的追随者,学习它的语言本身就是一个合理的目标。

MATLAB是一种专有的软件环境和编程语言,而且MATLAB的成本相当高。有些人决定在一个名为Octave的开源项目中复制它。随着Octave的成熟,它在可用功能和功能方面越来越接近MATLAB。除了使用附加软件包(工具箱)的代码之外,用MATLAB编写的绝大多数代码都可以在Octave中工作,反之亦然。

总的来说,MATLAB和Octave非常适合在信号处理、通信、图像处理和优化等方面使用大型矩阵的工程师(特别是电气工程师)。

R语言是基于贝尔实验室S编程语言创建的。它是开源的,但其许可证比Python和Java等其他流行语言更具限制性,特别是你正在构建商业软件产品时。与MATLAB相比,R中更容易加载和处理不同类型的数据。MATLAB擅长处理表格数据,但一般来说,对于包含标题、混合列类型(整数,小数,字符串等)、JSON和数据库查询的表,R更好。

R的另一个优点是开源,开发人员可以更轻松地在他们认为合适的地方为语言和包开发做出贡献。这些开源贡献帮助R大幅增长并扩展了与其他软件工具的兼容性。CRAN网站提供了数以千计的R包,你可以找到你想要进行的分析类型的软件包,这是R语言的最大优势。MATLAB也有包,但不是很多,尽管它们通常非常好。总体而言,对于统计学家和其他追求数据探索性工作而不是在软件行业中构建生产软件的人来说,R是一个不错的选择。

Python是一种功能强大的语言,可用于编写脚本和创建生产软件。它更适合非统计任务,例如与其他软件服务集成,创建API和Web服务以及构建应用程序。可能因为Python最初是一种通用编程语言,它有一个强大的面向对象设计框架。

尽管Python最初并不是一种专门用于统计的语言,但有些人已经为Python开发了几个软件包,这些软件包提升了它的统计能力,现在足够与R和MATLAB竞争。在使用向量、数组和矩阵时,数值方法的numpy包是必不可少的。软件包scipyscikit-learn在优化、集成、集群、回归、分类和机器学习等功能中很受欢迎。使用了这三个软件包,Python可以与R和MATLAB的核心功能相媲美,在某些领域,例如机器学习,Python似乎在数据科学家中更受欢迎。对于数据处理,pandas已经变得非常受欢迎。

然而,数据科学中最著名的Python包之一是Natural Language Toolkit(NLTK)。它是自然语言处理(NLP)中最受欢迎和最强大的工具。如果有人正在从Twitter、新闻源、电子邮件语料库或其他地方解析和分析文本,那么他们很可能已经使用了NLTK。总的来说,Python非常适合想要进行一些数据科学以及其他一些纯粹的非统计软件开发的人。

虽然Java不是脚本语言,不太适合探索性的数据科学,但Java是软件应用程序开发中最著名的语言之一,因此它经常用于分析应用程序开发。导致Java不利于探索性数据科学的许多原因使其更有利于应用程序开发。Java对于探索性数据科学来说并不是很好,但它对于基于数据科学的大规模或生产代码来说非常有用。Java有许多统计库,可用于从优化到机器学习,其中许多都是由Apache Software Foundation提供和支持的。

在选择统计软件工具时,请牢记以下标准:

·       灵活性:除了能够执行你想要的主要统计分析之外,如果统计工具可以执行一些相关方法,通常也会有所帮助。通常你会发现你选择的方法并不像你希望的那样好,而且你在这个过程中学到的东西会让你相信一种不同的方法可能会更好。

·       良好的文档:除了常用之外,统计软件工具应该有全面而有用的文档。如果你无法找到一些重要问题的答案,例如如何配置进行线性回归的输入或如何格式化机器学习功能,这是一个不好的迹象。如果大问题的答案不在文档中,那么找到你将不可避免地遇到的更具体问题的答案就更难了。

·       :某些软件工具或其软件包是为特定目的而构建的,之后又添加了其他功能。例如,MATLAB和R中的矩阵代数例程在构建语言时是主要关注的问题,因此可以安全地假设它们是全面且健壮的。相比之下,矩阵代数在初始版本的Python和Java中并不是主要关注的问题,因此这些功能稍后以包和库的形式添加。

·       互操作性:如果你正在使用数据库,那么使用可以直接与数据库交互的工具会很有帮助。如果你要根据结果构建Web应用程序,则可能需要选择支持Web框架的工具或者至少可以使用JSON或其他一些Web友好格式导出数据的工具。如果你将在各种类型的计算机上使用统计工具,那么你将希望该软件能够在各种操作系统上运行。

·       可证:如果你将商业软件用于商业目的,那么使用学术或学生许可这样做具有法律风险。将商业软件(无论是否经过修改)出售给其他人而不确认许可证是否禁止此类软件也是危险的。

8-优化产品

接下来我们就需要使用补充软件优化产品。我们在上一步中创建的软件工具可以是多功能的,但它们本质上是统计的。软件可以做的不仅仅是统计数据,特别是,有许多工具可用于有效地存储,管理和移动数据。有些可以使计算和分析的每个方面都更快且更容易管理。这里有4种流行的软件,可以使你作为数据科学家的工作更轻松。

数据库很常见,在项目期间跨越不同数据库的可能性相当高,特别是如果你要使用其他人的数据。但是,当然不是仅仅接触,而是自己建立一个数据库来帮助你完成项目。最常见的两种类型是关系型(SQL)和非关系型(NoSQL,ElasticSearch),与将数据存储在计算机的文件系统上相比,数据库具有许多优势。大多数情况下,数据库可以提供对数据的任意访问且比文件系统更快,并且它们还可以通过冗余方式扩展,这种方式优于文件系统扩展。

高性能计算(HPC)是一个通用术语,适用于需要进行大量计算并且希望尽快完成计算的情况。你可以选择使用超级计算机计算机集群图形处理单位(它们非常适合执行高度可并行化的计算)。如果你有权访问,那么HPC是等待PC计算所有需要计算的东西的好选择。使用HPC产品的好处有很多,但是在你选择之前你必须要衡量一下成本。

最大的云服务提供商主要是大型科技公司,例如阿里巴巴、谷歌和微软等公司在向公众开放之前都已经拥有大量的计算和存储资源。但他们并不总是将资源用到最大负荷,因此他们决定出租过剩的产能并扩大其收益,结果证明这是一系列有利可图的商业决策。提供的服务通常大致相当于个人计算机,计算机集群或本地网络的功能。所有这些可以在世界各地的地理区域中获得,可通过在线连接和标准连接协议访问,以及通常是Web浏览器界面。如果你没有足够的资源来充分满足你的数据科学需求,你可以选择尝试购买云服务。

最后,你可以尝试大数据技术:Hadoop,HBase和Hive等。大数据技术的设计不是为了移动数据,而是当数据集处于非常大的规模时,利用大数据技术可以节省大量的时间和金钱。每当计算任务受数据传输限制时,大数据可以提高效率。但是,与本章中描述的其他技术相比,大数据系统软件需要花费一些精力。

9-执行计

构建阶段的最后一步是执行产品的构建计划。大多数软件工程师可能熟悉构建复杂软件的试验和磨难,但他们可能不熟悉构建处理可疑质量数据的软件的难度。另一方面,统计人员知道拥有脏数据的情况,但可能没有建立更高质量软件的经验。同样,与项目相关的不同角色的每个人可能拥有各种经验,并为不同的事情做好准备。

·       如果你是一名统计学家,你会知道有脏数据,而且你知道偏差和夸大结果的重要性。但你可能没有太多经验来构建业务软件,特别是生产软件。你应该咨询具有实践经验的软件工程师,以了解如何提高软件的稳健性。

·       如果你是件工程,你知道开发生命周期是什么样的,并且你知道如何在部署和交付之前测试软件。但是你可能不了解数据,无论你在软件设计和开发方面有多好,数据最终都会以你从未想过的方式破坏你的应用程序。这需要在构建软件时采用新的思维模式以及对错误有容忍度,因为它们会频繁地发生。你应该咨询精通预测和处理有问题数据的统计人员,例如异常值,缺失值。

·       如果你开始从事数据科学,没有丰富的统计学或软件工程经验,如果你可以向他们解释你的项目和目标,那么有经验的人可以向你提供一些可靠的建议。作为一个初学者,你在这个过程阶段有职责来弥补经验的不足。

·       如果你只是该项目的一个团队,那么沟通和协调是至关重要的。你不必了解团队中发生的所有事情,但有必要明确目标和期望,并确保有人管理整个团队。

设计计划应包含多个路径和选项,所有这些都取决于项目的结果、目标和期限。无论计划有多好,随着项目的进展,总有可能对其进行修订。即使你考虑到所有不确定因素并且意识到每一种可能的结果,计划范围之外的事情也可能会发生变化。计划需要改变的最常见原因是新信息从项目外部的来源出现,并且计划的一个或多个路径发生变化或目标本身发生变化。

随着项目的进展,你通常会看到越来越多的结果积累,让你有机会确保它们符合你的期望。一般而言,在涉及统计的数据科学项目中,期望基于统计显著性的概念或基于这些结果的实际有用性概念。统计意义和实际有用性通常密切相关,当然不是相互排斥的。作为项目计划的一部分,你可能包含了在统计分析结果中达到某种准确性或重要性的目标,实现这些目标将被视为该项目的成功。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

像数据科学家一样思考:12步指南(中)相关推荐

  1. 像数据科学家一样思考:12步指南(上)

    介绍 目前,数据科学家正在受到很多关注,因此,有关数据科学的书籍正在激增.我看过很多关于数据科学的书籍,在我看来他们中的大多数更关注工具和技术,而不是数据科学中细微问题的解决.直到我遇到Brian G ...

  2. 像数据科学家一样思考:12步指南(上) 1

    介绍 目前,数据科学家正在受到很多关注,因此,有关数据科学的书籍正在激增.我看过很多关于数据科学的书籍,在我看来他们中的大多数更关注工具和技术,而不是数据科学中细微问题的解决.直到我遇到Brian G ...

  3. 像数据科学家一样思考:12步指南(下)

    第三阶段-完成 一旦产品构建完成,你仍然需要做一些事情来使项目更加成功并使你的未来生活更轻松.那么我们如何完成数据科学项目呢? 10-交付产品 完成阶段的第一步是产品交付.为了创建可以交付给客户的有效 ...

  4. 大数据 端到端_成为数据科学家的端到端指南

    大数据 端到端 数据科学提示/入门指南 (DATA SCIENCE TIPS /BEGINNERS GUIDE) Data Science has improved considerably over ...

  5. 【自译】八步成为数据科学家

    成为数据科学家只需要8步,看起来很简单的呢~~~ 转载于:https://www.cnblogs.com/SevnChen/p/5320896.html

  6. hadoop将消亡_数据科学家:适应还是消亡!

    hadoop将消亡 Harvard Business Review marked the boom of Data Scientists in their famous 2012 article &q ...

  7. 如何成为一位数据科学家

    故事背景  这是kaggle的Titanic入门例子教程,我前面也写过一篇,这次工作是进一步清晰和完善整个步骤.大多数初学者都迷失在数据科学分析这个领域,因为他们陷入了黑盒子方法,使用他们不了解的库和 ...

  8. 如何成为一个优秀的数据科学家的投石之路

    故事背景 这是kaggle的Titanic入门例子教程,我前面也写过一篇,这次工作是进一步清晰和完善整个步骤.大多数初学者都迷失在数据科学分析这个领域,因为他们陷入了黑盒子方法,使用他们不了解的库和算 ...

  9. 论一枚数据科学家的自我修养

    作者 | 林荟 责编 | 何永灿 在回答这个问题之前,希望你先想想另外一个问题:为什么要成为数据科学家?当然,如果你是为了10万美元的年薪也无可厚非,但是我衷心希望你能将这个职业和自己的价值感挂钩.因 ...

最新文章

  1. Java面向对象学习笔记 -- 6(内部类、Timer)
  2. Ubuntu 16.04系统下CUDA8.0配置Caffe教程
  3. 【学神-RHEL7】P4-Python列表操作和字符串的常用方法
  4. 启用vsftpd服务
  5. C++实践参考——数组类运算的实现
  6. Python验证码简单实现(数字和大写字母组成的4位验证码)
  7. 英语初级学习系列-00-Name-介绍自己
  8. labuladong的算法小抄pdf_东哥手写正则通配符算法,结构清晰,包教包会!
  9. 强化学习的基础总结(一)
  10. 6-5.添加HLSL顶点着色
  11. 机器翻译的概述(冰山一角)
  12. 全国计算机等级证书和职业资格证书(计算机)哪个好
  13. win10 企业版 2016长期服务版激活
  14. Android集成阿里云一键登录步骤
  15. 学习记录657@python计算股价的回撤与收盘价回撤率组合图实现
  16. 小区数字IP广播系统
  17. 计算机python实验报告_Python实验报告六:函数
  18. 简述php的特点,PHP语言有哪些优势和特点(三)
  19. bezier曲面制作,SU技巧 | Bezier Surface(贝兹曲面)
  20. Studio5000 V33初学(一):FAL指令

热门文章

  1. 服务器搭建php mysql5_Windows下php5+apache+mysql5 手工搭建笔记
  2. python try else_python try/except/else与递归
  3. opencv 模板匹配_详细剖析模板匹配
  4. Linux c 进程名 pid,Linux C已知进程名字得到其PID号
  5. 青茶什么时候拆_为什么日本绿茶那么绿?比中国的高级绿茶还要绿
  6. 利用计算机录音模拟声波,2016年计算机一级考试题库及答案
  7. 即席和即兴_即兴说话小课堂
  8. 熟悉html css,编写HTML和CSS的前端开发中不一定熟悉JavaScript
  9. java arraylist 过滤_关于java:ArrayList过滤器
  10. yii2 mysql update_yii2 + mysql 常用增删改查操作语法以及事务