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

像数据科学家一样思考: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-执行计

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

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

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

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

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

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

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020云计算,是四强争霸还是赢家通吃?

来源 | 架构师技术联盟责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)近日,谷歌母公司Alphabet首次公布了谷歌云计算业务的数据,这一举动将云计算行业重新推到了聚光灯下。众所周知,全球云市场竞争激烈&…

加载程序中数据库账号密码加密策略wallet_04

文章目录1. 切换到oracle用户2. 创建wallet目录3. 创建wallet 账户4. 查看创建的wallet5. 创建wallet目录6. 查看证书7. 把证书拷贝到客户端8. 在客户端的sqlnet.ora里添加9. 客户端的tnsnames.ora10. 测试登陆11. oracle环境变量oracle服务端创建wallet 1. 切换到oracle用户 …

利用丁香园数据生成疫情分布地图(R语言)| 博文精选

来源 | CSDN 博客作者 | 万里写入胸怀间责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)疫情牵动大家,除了做好分内工作,管好自己不给社会添乱,也就是只能持续关注疫情了。现在各大门户平台都上线了疫情实时地…

php连接数据库性能测试,无需安装配置,多操作系统支持数据库及性能测试

iBoxDB是一个NoSQL数据库, 有SQLite的特性,但拥有更强大的Replication功能,支持更多的数据类型,自动完成ORMSQLite是全球知名度Top 10的数据库之一, 在文章 中对 SQLite 与 MySQL进行了一个事务中1万次插入测试, 测试的结果是"sqlite3用时仅0.4s,mysql用时2.2s"iBoxD…

ORACLE 添加和查看注释

文章目录一、表二、字段一、表 #1.给表加注释 COMMENT ON TABLE SYS_JOB IS 任务调度表;#2.查看表的COMMENT SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAMETABLENAME; 例如: SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAMESYS_JOB;二、字段 # 1.给字段加…

一次开发、多端分发,阿里巴巴发布AliOS车载小程序

4月16日上海国际车展首日,阿里巴巴小程序有了新动态:正在研发基于AliOS的车载小程序。 AliOS展出车载小程序、AI HUD、AI驾驶舱等最新技术 作为阿里巴巴小程序在车载场景的重要延伸,AliOS车载小程序和支付宝、高德等小程序一样,将…

基于TableStore的海量气象格点数据解决方案实战

前言 气象数据是一类典型的大数据,具有数据量大、时效性高、数据种类丰富等特点。气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到上百TB的规模,且在…

腾讯会议扩容背后:100万核计算资源全由自研服务器星星海支撑

疫情期间,远程会议及协同办公需求暴增。从1月29日开始到2月6日,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入。 值得一提的是,腾讯…

实时计算无线数据分析

本文为您介绍实时计算在无线数据分析中的应用。阿里云实时计算可以为无线App的数据分析场景实时化助力,帮助您做到实时化分析手机AP的各项指标,包括App版本分布情况、Crash检测和等。 阿里云移动数据分析 (Mobile Analytics,下面简称MAN) 是…

对话阿里云Alex Chen:下一代存储应如何面对云转型?

数字经济"乘云而上"。 十年前,阿里云开始自主研发云计算操作系统飞天之路,开启了中国云时代; 十年后,阿里云在中国市场份额超过2-8名总和,培育了整个中国云计算市场,数字经济在云上蓬勃发展。 …

写给大数据从业者:数据科学的5个陷阱与缺陷

来源 | AI 前线作者 | 陈炬,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)导读: 这篇分享主要总结了数据从业人员在实践中可能遇到的陷阱与缺陷。跟其他新起的行业一样,数据科学从业人员需要不停的去考虑现…

阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准

4月9日,澳门当地时间下午4:00-5:30,阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会。 本次专场研讨会由阿里巴巴集团副总裁、高级研究员,阿里云智能数据库产品事业部负责人李飞飞(花名:飞刀&#…

大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选

来源 | CSDN 博客作者 | Alice菌,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)相信对于大部分的大数据初学者来说,一定遇见过Hadoop集群无法正常关闭的情况。有时候当我们更改了Hadoop内组件的配置文件后,…

现代IM系统中的消息系统架构 - 架构篇

前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品,但其核心功…

华南地区最大数据中心上线 阿里云河源数据中心正式开服

2月18日,阿里云在官网宣布,河源数据中心正式对外提供服务。这是华南地区规模最大的绿色数据中心,可容纳超过30万台服务器,作为深圳地域的新可用区为华南地区上百万企业客户提供领先的云计算、人工智能、物联网等服务。 据悉&#…

在阿里做了五年技术主管,我有话想说

阿里妹导读:在历史文章《如何成为优秀的技术主管?》中,阿里巴巴高级技术专家云狄从开发规范、开发流程、技术规划与管理三个角度,分享对技术 TL 的理解与思考。 今天的文章,他将继续深入探讨这一话题,从管理…

Fish Redux中的Dispatch是怎么实现的?

零.前言 我们在使用fish-redux构建应用的时候,界面代码(view)和事件的处理逻辑(reducer,effect)是完全解耦的,界面需要处理事件的时候将action分发给对应的事件处理逻辑去进行处理,…

码上用它开始Flutter混合开发——FlutterBoost

开源地址: https://github.com/alibaba/flutter_boost为什么需要混合方案 具有一定规模的App通常有一套成熟通用的基础库,尤其是阿里系App,一般需要依赖很多体系内的基础库。那么使用Flutter重新从头开发App的成本和风险都较高。所以在Native App进行渐…

Linux系统常用指令总结

来源 | CSDN 博客作者 | 不撸代码闲得慌,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)系统的运行级别0:关机1:单用户模式(可以找回丢失的密码)2:多用户状态没有网络服务…