微信号:infoqchina

介绍:有内容的技术社区媒体

用于大数据的嵌入式分析和统计

2014-03-25 20:43 InfoQ

用于大数据的嵌入式分析和统计已经成为了业内一个重要的主题。随着数据量的不断增长,我们需要软件工程师对数据分析提供支持,并对数据进行一些统计计算。本文概要地介绍了嵌入式数据分析和统计的相关工具及类库,其中包括独立的软件包和带有统计能力的编程语言。我期待着收到本专栏读者和潜在的专栏作者的反馈,告诉我你们对这个专栏的想法,以及你们想要了解哪些相关技术。—Christof Ebert


不管在信息技术界还是嵌入式技术界,大数据都已经变成了非常关键的概念。1 这样的软件系统通常都有众多的异构连接,包括软件应用程序、中间件和传感器之类的组件。随着云设施的使用不断增长,可用的数据资源变得更加丰富了;智能电网、智能车辆技术、医药最近都出现了这种相互连接的数据源。我们每年生产的数据将近1,200艾字节,并且这一数字有增无减。2,3 这样海量的非结构化数据是业务和IT主管无法回避的巨大挑战。


大数据的定义由四个维度组成:数据量、数据源的复杂度、生产速度,以及潜在用户数。这些数据需要被组织起来,将无数的位和字节转换成可操作的信息—除非我们能提炼出其中的含义,否则数据再丰富都没用。在以前,程序员是写代码的,而统计学家是做统计的。程序员一般用通用的编程语言,而统计学家一般用专门的程序完成自己的日常工作,比如IBM的SPSS (用于社会科学的统计软件包)。统计学家摆弄的国家统计数据或市场调研通常只有选定人群能用,而程序员处理的大量数据都是放在数据库或日志文件中的。从云到几乎所有人都可用的大数据改变了这一切。


随着数据量和数据类型的不断增加,越来越需要软件工程师参与进来对它们做不同的统计分析。软件工程师积极地以前所未有的规模收集和分析数据,让它们变得有价值,拓展新的业务模型。1 比如说,考虑一下主动性维护。我们可以持续地对机器、网络进行监测,一旦发现违规和失效,则立即处理,从而让我们可以在破坏发生或系统瘫痪之前纠正它们。这可以从材料成本以及人工介入两方面降低维护成本。处理数据并找出其中的含义通常只是一个大项目中的一部分工作,或者只是嵌在某些软件中,配置中,或硬件优化问题中。幸运的是,大数据社区已经对这种需求作出了响应,他们创建了一系列的工具,可以将统计学家的一些魔力交给程序员—实际上,这些工具通常要比传统的统计工具更强大,因为它们能处理的数据量在规模上要比老的统计样本幅度更大。


用于嵌入式分析和统计的技术


可以执行统计分析的软件有很多。其区别在于用户对它们统计复杂度的要求,易用性,以及它们是独立的软件包,还是带有统计能力的编程语言。


我们介绍一下R、Python和D3 (数据驱动文档Data- Drives-Documents)。R是一门面向统计的语言。Python是一门通用的编程语言,并且已经证实在科学家和研究人员中间很流行,他们会用它作科学及统计计算。D3是一个JavaScript库,用户可以用它创建可视化图形,并使用Web浏览器与之交互(比如放大、缩小、收起和展开) 。R、Python和D3都非常适用于嵌入式统计,有几个原因:

  • 因为它们是独立的编程语言,可以轻松地通过标准语言机制跟其它系统交互,或者也可以通过导入及导出各种格式的数据。

  • Python和R中的脚本可以直接嵌入到更大的分析工作流中。

  • Python和R程序可以直接用来构建应用程序,这些应用程序可以从各种数据源读取数据,用户可以直接通过Web跟这些应用程序做数据分析及可视化的交互。

  • 借助D3,用户可以通过Web浏览器交互式地操作统计图形,将分析提升到更高水平。

  • 它们比专业的统计包更靠近程序员的思维框架。


Python的统计生态系统


现如今用来做统计的最流行的通用编程语言就是Python。在科学计算方面它总是受到青睐,还有几个优秀的Python工具可以用来完成更复杂的统计任务。Python中的基本科学库是NumPy。它对Python的主要贡献是一个同构的多维数组,可以用来放操作数据的方法。它可以集成C/C++和Fortran,还有几个函数可以用来执行高级的数学及统计计算。它内部主要用的是自己的数据结构,用本地代码实现,所以在NumPy中执行的矩阵计算比在Python中执行相同的计算快得多。构建在NumPy 之上的SciPy,提供了一些高层的数学和统计函数。SciPy再次处理了NumPy的数组;这些数组虽然很适合做数学计算,但处理可能会有缺失值的异构数据时有一点繁琐。为了解决这个问题,Pandas提供了灵活的异构数据结构,很容易索引、切片,甚至合并和连接(类似于SQL表之间的连接)。 引入iPython是个很吸引人的设置,它是一个交互式的Python shell,有命令行补足、很好的历史记录,以及很多其它特性,在操作数据时特别有用。然后还可以用Matplotlib对结果可视化。


随后本文通过一些实际的例子介绍了Python和R在大数据统计分析中的应用。更多精彩内容,请点击阅读原文。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 一不留神,代码就腐化了 10个精选一线互联网架构思考与实践 想不到最有魅力的竟然是他 集成电路反向分析的争议性 R中的数据结构——矩阵