背景

在我们举办的聚会期间,我们见到了很多朋友。从数据科学领域完全的菜鸟到专家,在同一个屋檐下,每个人都发出自己的疑惑。然而,当我们面对这群朋友——很大比例的这部分人(包括一些专家),一件事情显得尤为突出,他们没有自己的机器,也没有将自己的身份调整过来。他们中的很多人从未抽出时间开启他们作为数据科学家的旅程。结果他们只是得到了一个能够涉及多个产业资源的机会。

没有人告诉他们该关注哪些博客,该订阅哪些时事新闻,去哪里阅读行业最新的讯息。他们从不调整他们的机器,也没有必要的硬件或者软件。这导致了极低的生产率,在某些情况下甚至遭遇挫折,在这样的时候他们应该喜欢上这样的经历。

还是没有联想起什么?试想下在浏览一个网页的时候,载入就耗费了10秒中。在这个时候你很可能会很不耐烦,然后打开一个新站点的网页避免浪费时间。同样的事情也会发生在数据科学身上。代码运行的时间越长,从工作中避开的机会也越多。

这就是我们怎样发现行业里的人们不曾说过的问题,因此我们想给这些朋友准备成为数据科学家的一些指引。

谁适合本指引?

如上所述,这个指引是写给那些还没调好机器的数据科学行业的工作者。我想这更多的是给新手们写的,但是我同样也希望资深工作者也能从中受益。

让我们从设置机器开始

1.硬件-机器的选择

首先应该确认的是你有适合数据科学的硬件配置。如果你的硬件已经足够好的话,那也没什么可以做的了。既然笔记本电脑已经成为现在的主流,以下是我对笔记本的配置建议。如果你用台式机或者iMac,你可以有更好的硬件配置。

当然最终的选择将由你可以付出多少钱来决定,我建议一台四核心,英特尔i7处理器的机子就可以了。确保你选的机子是四核处理器而不是双核的。在现在,选用好的四核芯片还是比较困难的。你可以在cpuboss这类网站上查看各种芯片的benchmark性能表现,再根据自己的预算来选择。

我们总是建议你配置尽量大的内存,很多工具在计算的时候都会消耗大量内存,你也不想让内存溢出吧。

如果你的预算充裕,将机械硬盘升级为固态硬盘可以为数据的读写提升很大的性能。对那些真想深入学习机器学习的人来说,建议配置一块英伟达的GPU,这样的话对于那些需要强烈计算的时候可以用上CUDA技术。

这里有一些比较好的建议配置:

  • 15吋的Mac Book Pro.
  • 3年前我购置了一台联想Z510,i7(3632QM)处理器,16GB内存,英伟达的GPU的电脑,我觉得还不错。性能方面,它仍然是现在市场上一台比较不错的设备。
  • 如果你在美国,需要更好的设备,可以试下Malibal 9000,它很漂亮,只是有点重。

一些其他的说明:

  • 6代的英特尔Skylake处理器最近才发布,基于这款处理器的设备才刚刚兴起。我相信他们将再次掀起一场革命。你可以在联想Thinkpad P50和P70的配置上得到检验。 所以,如果你现在有一台中等配置的机器,我建议你再等2-3个月购置一台基于6代处理器的设备。
  • 如果现在你不得不买一台设备的话,四代四核i7处理器是一个不错的选择。在写这篇文章的时候,5代的处理器还没有什么好的选择。

人们可能会说没有必要在怎么高配的设备上做投资。你可能在一些中等机器的云上更好的工作。我个人很喜欢个人电脑提供的方便的可访问性,我可以在没有网络的情况下随时随地的工作。

2.操作系统

一旦你已经选定了你的机器,下一步重要的选择就是操作系统了。

  • 如果你有一台mac机,那么你的操作系统就已经定了。一些软件比如QlikView在MAC下没有兼容版本,你可以在虚拟机里运行它们。
  • 如果你用的是PC电脑,我建议安装双系统。Linux在高级计算上有更好的表现,Windows系统对于像微软Office等一起其他的软件只能在Windows系统运行。所以两个系统最好都要有。
  • 另一个选择是我看到很多人在Windows机上跑一台Linux虚拟机,这样的话在内存和性能上将受到一些限制。
  • 也可以在Linux上使用微软的Office 360.我本人没怎么干过,所以我就不评论了,但是看起来也是个选择。再次重申,可能有很多软件没法再Linux上运行。

一旦选定了操作系统确保你的操作系统发挥了最大的性能。比如,在Windows上,你可以关掉一些透明等界面的效果。去到高级选项卡->性能->设置,将视觉效果禁用,取消一些没必要自启动的程序,然后将电源调成性能模式。

3.常用软件

除了一些数据分析工具,这里有一些你需要用到的软件。

  • 微软Office比如Excel,用来展现结果,编写文档等。
  • FileZilla用FTP传送文件。
  • Git & GitHub用来控制版本.
  • VMWare / Oracle Virtual Box / Vagrant用来运行虚拟机。
  • Cygwin / Putty(for windows)
  • 我使用Evernote 来整理笔记.如果在Linux里,我使用浏览器。
  • Terminator (for Linux)在单个视图下运行多个终端的工具,很不错的。
  • Sublime Text用来编写代码.你需要安装额外的你所使用的语言插件。

4.分析数据的软件

这部分将非常依赖于你所选用的数据挖掘的工具。如果你仍然选用主要的工具,看下这里的比较 – SAS vs. R vs. Python.如果你 已经有一个选用的工具,选一个适合你的:

  • SAS– 基于SAS的企业级指引、企业级数据挖掘模块将依赖于你的许可证.它也提供了TextMiner / JMP和一些行业应用的模块。
  • R– R语言提供了一些关键的库.RStudio是一个不错的开发环境。
  • Python– iPython notebooks, Dato (Graphlab), vowpal-wabbit, import.io 是另外很有意思的相互独立的科学库.

其他可供选择的有MATLAB / Octave / RapidMiner.

5.数据可视化软件

除了以上提到的软件,有一个专门用来做数据可视化的工具是很重要的。他们通常会在每一个项目的末尾,当你将数据呈现在客户面前时显现出重要性。有很多可供选择的软件。关于这些软件的更多信息,请参考他们自己的文档。我推荐 QlikView – 它很易用,有一个个人免费版本可以下载,对于大的数据量它真的可以很好的处理.Tableau 是另外一个很不错的选择,使用起来同样非常直观,但是据我的经验,对于大数据量的处理并不是很出色。

如果你了解JavaScript,你可以使用基于它的库比如D3.js

6.数据库/文件存储

很多时候,当数据集很庞大或者你给你的用户编译程序时,你将需要使用数据库 –SQL 是最常使用的.你也可以使用MySQL或者PostgreSQL.SQLite捆绑在Python的包里时对于一些小的应用是非常高效的。如果你经常跟大数据量打交道,建立一个Hadoop集群是不可避免的。如果你要处理实时的数据流,你也将需要用到Spark.

除了这些数据库,你需要了解下NoSQL,以防日后用到它.我建议使用 MongoDB 和 Neo4j .

其他资源

6.云服务

假如你要处理400GB的数据量,你要怎么办呢?即使我上面建议的机器配置用R语言来处理,也无法一次将他们装载到内存里。对于这样的场景,有一个云账号是很方便的。你可以使用两家云服务提供商——亚马逊网络服务(人们常说的AWS)或者微软公司的Azure.他们都提供了高度伸缩性的解决方案。Azure平台界面可能会更加友好些,但是亚马逊才是云服务的霸主。你可以在两个公司都申请个账号体验一下。

7.行业博客和时事新闻

我假设你已经订阅了Analytics Vidhya的文章。如果没有,请到这里 订阅.除了Analytics Vidhya, 你也可以关注 KDNuggets 和 DataScienceCentral.

在时事新闻方面, 我推荐O’Reilly, DataScienceWeekly和 Data Elixir 的时讯.

8.移动app

我经常使用手机阅读很多内容。不论我是在乘坐地铁或者只有5分钟浏览最新的出版物,我都使用移动端。我用Prismatic和Flipboard这些聚合软件去发现新的东西。两者都给我提供了行业最新的发展动态。

另外,我也使用Termux,它是一个功能完善的Linux终端,以防我需要ssh连接服务器的时候使用。我也偶尔使用它在Python脚本里编写原型程序。

9.聚会

你可以找到很多聚会在你周围.它给需要相互交流的人们提供了很好的机会。Analytics Vidhya在印度很多城市主办了编程马拉松活动。DataKind也有很多聚会.

10.可用来实践的数据集

对于新手, 你可以看看这在Analytics Vidhya上的讨论 .除了这个, KDNuggets维护了一些开源的数据集。 UCI也提供了一些可用于机器学习的数据.

你也可以访问data.gov来寻找一些开源的数据。

11.社区和社交媒体

如果你还没有完成, 注册我们的讨论门户.你不能只是跟其他的数据科学家在社区上交流,也可以参加各种我们主办的编程马拉松.除此之外, 你可以看看 Kaggle竞赛和DataTau这是黑客行业的一些动态.

另外,你也可以在Twitter, LinkedIn, GitHub, Facebook和Reddit找到数据科学的社区.你同样可以订阅YouTube的频道。

本文作者:佚名

来源:51CTO

作为数据科学家应该知道的11件事相关推荐

  1. android auto 能微信_想使用Android Auto系统你需要知道的11件事

    如果你想要在自己的汽车里使用Android Auto,但是又不知道从何做起.没关系,最近科技网站greenbot专门为我们详细介绍了使用Android Auto系统时应该知道的几件事,包括软件的内部运 ...

  2. 移动产品经理必须要知道的11件事

    1.Mobile Website.Hybrid App.Native App的区别 Native App:基于本地(操作系统)运行的APP,从应用商店下载,不一定要联网才可以使用,优势在于针对不同平台 ...

  3. [密码学基础][信息安全][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第11篇]DLP、CDH和DDH问题是什么?

    这是一系列博客文章中最新的一篇,文章的主题是"做密码学每个博士生都应该知道的52件事".这一系列问题是为了让博士生们在第一年结束时了解他们应该知道的事情.本博客是数学背景部分的第二 ...

  4. 《抓住听众心理——演讲者要知道的100件事》一第 1 章 人们是怎样思考和学习的...

    本节书摘来异步社区<抓住听众心理--演讲者要知道的100件事>一书中的第1章,第1.1节,作者: [美]Susan M. Weinschenk 译者: 杨妩霞 , 杨煜泳 责编: 赵轩,更 ...

  5. 产品心经:产品经理应该知道的60件事

    题记 有幸拜读闫荣的<产品心经:产品经理应该知道的60件事> ,对书中产品经理的软技能和硬技能,深入浅出的讲解有很大的共鸣.唯一不好的一点就是整本书篇章有点多60篇,看书也需要坚持哈.正如 ...

  6. 软件架构师应该知道的 97 件事

    软件架构师应该知道的 97 件事  1.客户需求重于个人简历(Nitin Borwankar)          客户需求至上.为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违.         ...

  7. 软件架构师应该知道的97件事

    原文出处:http://blog.csdn.net/seanbv/article/details/5451705 软件架构师是个让人羡慕的职业,在市场经济成熟的国家,其薪酬已经达到医生.律师.注册会计 ...

  8. 《程序员应该知道的97件事》即将上市

    一.出版信息 [书名]程序员应该知道的97件事 [作者]Kevlin Henney  著 [译者]李军 译 吕骏审校 [出版社]电子工业出版社 [书号]978-7-121-11756-5 [定价]45 ...

  9. (转)软件架构师应该知道的97件事

    软件架构师是IT 行业里独一无二的职业,既要精通软件开发技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾.做到这些绝非易事, 博文视点 即将翻译出版的新书<软件架构师应该知道的9 ...

最新文章

  1. 中国科学技术大学研究生基因组学考试复习提要
  2. android仿支付宝弹窗,【转】MUI自定义底部弹窗自带遮罩层仿支付宝支付弹窗
  3. C++ 输出数据类型
  4. 你敲键盘的声音,出卖了你 | 附开源代码
  5. 智能门禁考勤机:刷脸同时开门和打卡
  6. uva 104 Arbitrage (DP + floyd)
  7. 获取mysql存储过程返回值_MySQL函数,存储过程,用户管理
  8. 【verilog】 AB相旋转编码器驱动(fpga,正交编码器,霍尔编码器驱动)
  9. 蓝牙协议分析工具Wireshark/Frontline/Ellisys的使用
  10. 打开 IBM Rational Rose Enterprise Edition 报错的处理
  11. 三种百度网盘加速器,轻松突破10M/S,总有一款适合你!
  12. 一个IT公司技术总监的职责
  13. 罗马仕荣获中国质量认证中心、CESI颁发的全国首批“双新认证”证书
  14. 015、移动WEB开发基础
  15. 计算机网络——访问控制列表
  16. java输出每一列数据左对齐_Java(或Excel) - 如何对齐乱序的列数据
  17. 基于java+ssm+mysql的网上二手车交易系统
  18. C语言中Switch语句的范围比较解决方案(学习笔记)
  19. 基于OpenCV实现海岸线变化检测
  20. 在执行云计算转型之前,需要考虑哪些因素

热门文章

  1. echarts 动态改变数据_Echarts的使用
  2. 华为手机如何升级鸿蒙系统_能运行EMUI 11才能升级到鸿蒙2.0,只有这些手机能升级,有你的吗...
  3. python 如何给matplotlib降级_Python如何使用Matplotlib的作图
  4. matlab--矩阵运算
  5. java 中文问号问题_解决java中的中文乱码问题(ZT)
  6. Sublime text别再弹出(wei zhu ce)以及(geng xin)提示了?
  7. FPGA之道(42)FPGA设计的分类
  8. HDLBits 系列(34)Serial two's complememter(Mealy and Moore FSM)
  9. 有重叠与无重叠序列之序列检测与序列产生
  10. Notepad++写Verilog HDL代码时,在注释语句下出现红色波浪线怎么办?