随着大数据的热潮不断升温, 几乎各个领域都有洪水倾泻般的信息涌来, 面对用户成千上万的浏览记录, 记录行为数据, 如果就单纯的 Excel 来进行数据处理是远远不能满足的. 但如果只用一些操作软件来分析, 而不怎么如何用逻辑数据来分析的话, 那也只是简单的数据处理.
替代性很高的工作, 而无法深入规划策略的核心.
当然, 基本功是最不可忽略的环节, 想要成为数据科学家, 对于这几个程序你应该要有一定的认识:
R
若要列出所有程序语言, 你能忘记其他的没关系, 但最不能忘的就是 R. 从 1997 年悄悄地出现, 最大的优势就是它免费, 为昂贵的统计软件像是 Matlab 或 SAS 的另一种选择.
但是在过去几年来, 它的身价大翻转, 变成了资料科学界眼中的宝. 不只是木讷的统计学家熟知它, 包括 WallStreet 交易员, 生物学家, 以及硅谷开发者, 他们都相当熟悉 R. 多元化的公司像是 Google,Facebook, 美国银行以及 NewYorkTimes 通通都使用 R, 它的商业效用持续提高.
R 的好处在于它简单易上手, 透过 R, 你可以从复杂的数据集中筛选你要的数据, 从复杂的模型函数中操作数据, 建立井然有序的图表来呈现数字, 这些都只需要几行程序代码就可以了, 打个比方, 它就像是好动版本的 Excel.
R 最棒的资产就是活跃的动态系统, R 社群持续地增加新的软件包, 还有以内建丰富的功能集为特点. 目前估计已有超过 200 万人使用 R, 最近的调查显示, R 在数据科学界里, 到目前为止最受欢迎的语言, 占了回复者的 61%(紧追在后的是 39% 的 Python).
它也吸引了 WallStreet 的注目. 传统而言, 证券分析师在 Excel 档从白天看到晚上, 但现在 R 在财务建模的使用率逐渐增加, 特别是可视化工具, 美国银行的副总裁 NiallO'Conno 说,「R 让我们俗气的表格变得突出」.
在数据建模上, 它正在往逐渐成熟的专业语言迈进, 虽然 R 仍受限于当公司需要制造大规模的产品时, 而有的人说他被其他语言篡夺地位了.
"R 更有用的是在画图, 而不是建模." 顶尖数据分析公司 Metamarkets 的 CEO,MichaelDriscoll 表示,
"你不会在 Google 的网页排名核心或是 Facebook 的朋友们推荐算法时看到 R 的踪影, 工程师会在 R 里建立一个原型, 然后再到 Java 或 Python 里写模型语法".
举一个使用 R 很有名的例子, 在 2010 年时, PaulButler 用 R 来建立 Facebook 的世界地图, 证明了这个语言有多丰富多强大的可视化数据能力, 虽然他现在比以前更少使用 R 了.
"R 已经逐渐过时了, 在庞大的数据集底下它跑的慢又笨重"Butler 说.
所以接下来他用什么呢?
Python
如果说 R 是神经质又令人喜爱的 Geek, 那 Python 就是随和又好相处的女生.
Python 结合了 R 的快速, 处理复杂数据采矿的能力以及更务实的语言等各个特质, 迅速地成为主流, Python 比起 R, 学起来更加简单也更直观, 而且它的生态系统近几年来不可思议地快速成长, 在统计分析上比起 R 功能更强.
Butler 说,"过去两年间, 从 R 到 Python 地显著改变, 就像是一个巨人不断地推动向前进".
在数据处理范畴内, 通常在规模与复杂之间要有个取舍, 而 Python 以折衷的姿态出现. IPythonNotebook(记事本软件) 和 NumPy 被用来暂时存取较低负担的工作量, 然而 Python 对于中等规模的数据处理是相当好的工具; Python 拥有丰富的资料族, 提供大量的工具包和统计特征.
美国银行用 Python 来建立新产品和在银行的基础建设接口, 同时也处理财务数据,"Python 是更广泛又相当有弹性, 所以大家会对它趋之若鹜."O'Donnell 如是说.
然而, 虽然它的优点能够弥补 R 的缺点, 它仍然不是最高效能的语言, 偶尔才能处理庞大规模, 核心的基础建设. Driscoll 是这么认为的.
Julia
今日大多数的数据科学都是透过 R,Python,Java,Matlab 及 SAS 为主, 但仍然存在着鸿沟要去弥补, 而这个时候, 新进者 Julia 看到了这个痛点.
Julia 仍太过于神秘而尚未被业界广泛的采用, 但是当谈到它的潜力足以抢夺 R 和 Python 的宝座时, 数据黑客也难以解释. 原因在于 Julia 是个高阶, 不可思议的快速和善于表达的语言, 比起 R 要快的许多, 比起 Python 又有潜力处理更具规模的数据, 也很容易上手.
"Julia 会变的日渐重要, 最终, 在 R 和 Python 可以做的事情在 Julia 也可以".Butler 是这么认为的.
就现在而言, 若要说 Julia 发展会倒退的原因, 大概就是它太年轻了. Julia 的数据小区还在初始阶段, 在它要能够和 R 或 Python 竞争前, 它还需要更多的工具包和软件包.
Driscoll 说, 它就是因为它年轻, 才会有可能变成主流又有前景.
Java
Driscoll 说, Java 和以 Java 为基础的架构, 是由硅谷里最大的几家科技公司的核心所建立的, 如果你从 Twitter,Linkedin 或是 Facebook 里观察, 你会发现 Java 对于所有数据工程基础架构而言, 是非常基础的语言.
Java 没有和 R 和 Python 一样好的可视化功能, 它也不是统计建模的最佳工具, 但是如果你需要建立一个庞大的系统, 使用过去的原型, 那 Java 通常会是你最基的选择.
Hadoop and Hive
为了迎合大量数据处理的需求, 以 Java 为基础的工具群兴起. Hadoop 为处理一批批数据处理, 发展以 Java 为基础的架构关键; 相较于其他处理工具, Hadoop 慢许多, 但是无比的准确和可被后端数据库分析广泛使用. 和 Hive 搭配的很好, Hive 是基于查询的架构下, 运作的相当好.
Scala
又是另一个以 Java 为基础的语言, 和 Java 很像, 对任何想要进行大规模的机械学习或是建立高阶的算法, Scala 会是逐渐兴起的工具. 它是善于呈现且拥有建立可靠系统的能力.
"Java 像是用钢铁建造的; Scala 则是让你能够把它拿进窑烤然后变成钢的黏土"Driscoll 说.
Kafka andStorm
说到当你需要快速的, 实时的分析时, 你会想到什么? Kafka 将会是你的最佳伙伴. 其实它已经出现五年有了, 只是因为最近串流处理兴起才变的越来越流行.
Kafka 是从 Linkedin 内诞生的, 是一个特别快速的查询讯息系统. Kafka 的缺点呢? 就是它太快了, 因此在实时操作时它会犯错, 有时候会漏掉东西.
鱼与熊掌不可兼得,「必须要在准确度跟速度之间做一个选择」,Driscoll 说. 所以全部在硅谷的科技大公司都利用两个管道: 用 Kafka 或 Storm 处理实时数据, 接下来打开 Hadoop 处理一批批处理数据系统, 这样听起来有点麻烦又会有些慢, 但好处是, 它非常非常精准.
Storm 是另一个从 Scala 写出来的架构, 在硅谷逐渐大幅增加它在串流处理的受欢迎程度, 被 Twitter 并购, 这并不意外, 因为 Twitter 对快速事件处理有极大的兴趣.
Matlab
Matlab 可以说是历久不衰, 即使它标价很高; 在非常特定的利基市场它使用的相当广泛, 包括密集的研究机器学习, 信号处理, 图像辨识等等.
Octave
Octave 和 Matlab 很像, 除了它是免费的之外. 然而, 在学术信号处理的圈子, 几乎都会提到它.
GO
GO 是另一个逐渐兴起的新进者, 从 Google 开发出来的, 放宽点说, 它是从 C 语言来的, 并且在建立强大的基础架构上, 渐渐地成为 Java 和 Python 的竞争者.
这么多的软件可以使用, 但我认为不见得每个都一定要会才行, 知道你的目标和方向是什么, 就选定一个最适合的工具使用吧! 可以帮助你提升效率又达到精准的结果. 如果你对大数据开发感兴趣, 想系统学习大数据的话, 可以加入大数据技术学习交流扣扣群 458345782, 私信管理员即可免费领取开发工具以及入门学习资料
来源: http://www.jianshu.com/p/4d928e6ed13a