阅读更多

5顶
0踩

开源软件

原创新闻 优秀大数据GitHub项目一览

2016-01-18 15:54 by 副主编 mengyidan1988 评论(0) 有18234人浏览
VMware CEO Pat Gelsinger曾说:
引用
数据科学是未来,大数据分析则是打开未来之门的钥匙

企业正在迅速用新技术武装自己以便从大数据项目中获益。各行业对大数据分析人才的需求也迫使我们升级自己的技能以便寻找更好的职业发展。
跳槽之前最好先搞清楚一个岗位会接触到的项目类型,这样你才能掌握所有需要的技能,工作的效率也会更高。
下面我们尽量列出了一些流行的开源大数据项目。根据它们各自的授权协议,你或许可以在个人或者商业项目中使用这些项目的源代码。写作本文的目的也就是为大家介绍一些解决大数据相关问题可能会用到的工具。



1.Apache Mahout
我们可以使用Apache Mahout来快速创建高效扩展性又好的机器学习应用。Mahout结合了诸如H2O算法、Scala、Spark和Hadoop MapReduce等模块,为开发人员提供了一个构建可扩展算法的环境。现在最新的版本是去年11月6日发布的0.11.1版本。

Apache Mahout支持一个叫做Samsara的数学环境,用户可以在Samsara中使用它提供的常见算法来开发自己的数学解决方案。Samsara对于线性代数、数据结构和统计操作都有着很好的支持,而且可以通过Scala的Mahout扩展或Mahout库来进行定制。Samara对很多常见算法都进行了重写因此速度上有一定的提升。这里我们能列出的一些算法包括:朴素贝叶斯分类器、矩阵分解、协同过滤以及神经网络。新加入的相似性分析还可以通过分析用户的点击来实现共现推荐算法。

Apache Mahout GitHub地址:https://github.com/apache/mahout
2.Apache Spark
Apache Spark是一个为实时大数据分析所设计的开源数据处理引擎。目前Spark的大用户有雅虎、腾讯和百度,使用Spark处理的数据在PB级别,集群节点数目也超过8000。Apache Spark是GitHub上最大的数据处理项目之一,有超过750名开发人员都曾对项目做出过贡献。

与Hadoop MapReduce相比Apache Spark在内存中的运行速度快100倍,在硬盘中运行速度的差距也在10倍以上。Spark能够达到这样的速度靠的是DAG引擎和内存内计算性能的提升。开发语言可以使用Java、Python、Scala和R,此外Spark还提供了差不多100种集合操作符以便开发人员构建并行应用。



图:Spark生态系统

Apache Spark为机器学习、Spark Streaming和GraphX提供了众多强大的库,其中也包括为DataFrame和SQL所设计的库。开发人员可以用这些标准库来提升应用的性能和开发效率。Spark可以运行于很多环境中,如独立的集群、Hadoop YARN、EC2和Apache Mesos。Apache Spark也能从Hive、HBase、Tachyon、Cassandra和HDFS等数据源读取数据。

Apache Spark GitHub地址:https://github.com/apache/spark
3.Apache Storm
Apache Storm的设计针对的是流式数据,不过对于大数据的实时分析它也是很可靠的计算系统。它同样是一个开源项目而且开发人员可以使用所有的主流高级语言。Apache Storm主要用于以下应用:在线机器学习、连续计算、实时分析、ETL、分布式RPC。Apache Storm有配置方便、可用性高、容错性好及扩展性好等诸多优点,处理速度也极快,每个节点每秒可以处理数百万个tuple。

目前最新的Apache Storm是去年11月5日发布的0.9.6版。

Storm集群中有三种节点:Nimbus、Zookeeper和Supervisor。Nimbus与Hadoop的JobTracker类似,主要用于运算的上传、代码的分发和计算的监测。Zookeeper节点的作用是Storm集群的协调,Supervisor节点则是实现对worker的控制。

Apache Storm GitHub地址https://github.com/apache/storm/

4.NTLK(自然语言处理工具箱)
NTLK是用于开发Python自然语言相关应用的一个工具包。它自带用于断句、分类、标记、词干提取、语义推理和语法分析的库,此外还有一个较为活跃的社区。对于语言学的实证研究、人工智能、认知科学、机器学习和信息提取来说都是强大的工具,当然你得用Python。

自动补全是NTLK可能的用处之一。输入部分文字,借助NTLK可以推测可能的完整句子,现在很多搜索引擎都有这个功能。其他可能的应用还包括文本归类、地址分析和智能语音命令等。

NTLK GitHub地址:https://github.com/nltk/nltk

5.mLoss
mLoss是机器学习开源软件的英文缩写,它将很多开源软件集合到了同一个平台。mLoss所收集的开源项目都经过审阅并附有对项目的简短介绍。mLoss本身并不是一个软件而是一个支持机器学习应用开源的网站。
mLoss网站上列出的开源软件有各自项目不同的48种授权协议,作者数量高达1100人。mLoss是到目前为止最大的机器学习软件库,共支持107种数据类型,所涉及的操作系统有26个,使用的编程语言也有51种。

mLoss网站上列出的软件中较为流行的有:
  • dlib ml:机器学习算法的C++库
  • R-Cran-Caret:分类和回归训练库
  • Shogun:为SVM所设计的机器学习工具箱,适用于Python、Matlab、Octave和R
  • Armadillo:一个线性代数C++库
  • MLPY:以NumPy和SciPY为基础构建的Python机器学习库
  • MyMediaLite:一个推荐器算法库

mLoss网站:http://mloss.org/

6.Julia
Julia是为技术计算所设计的一门动态高级语言。虽然它的语法和其他技术计算环境的语法差不多,但Julia现在的使用范围还比较窄。Julia支持分布式并行计算还有着完备的高精度数学函数库。

JuliaStats是一个机器学习和统计工具的合集,目的是帮助Julia用户创建可扩展且高效的应用。下面列出了JuliaStats中包括的一些程序:
  • StatsBase:从名字我们就能看出StatsBase提供的是统计学相关的基本功能,比如描述统计、统计动差、样本函数、计数、排序、互相关、自相关以及加权统计等。
  • DataArrays: 一个允许数据为空的数组类型,对重复数据的计算进行了优化。
  • DataFrames: 表数据类型,提供包括索引、合并以及公式等操作。
  • Distribution:用于计算分布的库,功能包括一元分布、多元分布、概率密度函数、累积分布函数以及最大似然估计。
  • Multivariate Stats:为多元统计分析所设计,功能包括降维、线性回归、线性判别分析以及多维标度。
  • MLBase:包括数据预处理、模型选择以及交叉验证等机器学习算法。
  • Clustering:包括聚类分析所用到的算法如k-means、k-medoids以及多种评估方法。

这里我们只列出了一部分数据分析和机器学习相关的库,其他库包括假设检验、核密度估计、非负矩阵分解NMF、广义线性模型GLM、马尔科夫链蒙特卡洛方法MCMC以及时序分析等。所有库的源码都可以在GitHub上找到。

Julia GitHub地址:https://github.com/JuliaStats

7.Scikit-Learn

Scikit-Learn是为机器学习所设计的开源Python库。它基于SciPy、NumPy和Matplotlib开发,称得上是一款数据分析和数据挖掘的利器。Scikit-Learn的授权协议允许个人和商业用户使用。
Scikit-Learn主要用于:
  • 聚类:识别数据中的不同类别。算法包括最邻近搜索、支持向量机和随机森林,可以用于图像识别和垃圾邮件识别等应用。
  • 回归:用于连续变量的预测。算法包括岭回归、支持向量回归、套索回归等。应用包括股票价格、天气以及电力负载的预测。
  • 降维:用于减少随机变量的个数。算法包括主成分分析、特征选择、乔里斯基分解和矩阵分解。
  • 数据处理:特征提取与数据预处理功能可以将原始数据转换成有利于机器学习应用处理的格式。

Scikit-Learn GitHub地址:https://github.com/scikit-learn/scikit-learn
本文中我们列出的这些GitHub项目应用颇为流行,而且这些工具和软件已经被用于解决实际中的大数据问题,希望本文能够对大家的大数据分析之路有所启发。

原文地址:Top Data Science Based Github Projects(译者/刘旭坤 审校/朱正贵 责编/仲浩)
  • 大小: 58.7 KB
  • 大小: 7.3 KB
5
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • asp.net 日期函数 某月的第一天和最后一天的日期

    常用asp.net日期操作函数-得到某月的第一天和最后一天的日期

  • ASP.NET日期处理函数

    ASP.NET日期处理函数1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; ...

  • (C#)Asp.net日期、时间函数大全

    在ASP.Net一般的程序编写中,所使用的数据里面,日期时间是一种特殊的数据类型,也是经常被使用的。---电脑教程技术学习网  在Visual Basic.NET中的日期时间数据用数值的数据类型保存,而且有范围。   日期的范围是公元1年1月1日~公元9999年1 2月3 1日,时间的范围是00:00:00~23:59:59。声明格式如下:    变量=#mm/dd/yyyy#   变量=#mm—

  • Asp.net中的日期处理函数(集合)

    Asp.net中的日期的处理 几乎都包括了。

  • ASP.NET(C#)——日期函数

    应用场景: 1.获取当天日期 DateTime.Now为DateTime格式。 DateTime.Now.ToString()转化为日期格式。 转载于:https://www.cnblogs.com/bluewhy/p/5230422.html

  • .net 获取系统日期的方法

    DateTime.Now.ToLocalTime().ToString(); // 2009-9-5 20:12:12  ②获取日期  DateTime.Now.ToLongDateString().ToString(); // 2009年9月5日  DateTime.Now.ToShortDateString().ToString(); // 2009-9-5...

  • c#的DateTime.Now函数详解

    //Asp.net(c#)中的日期处理函数      //2008年4月24日      System.DateTime.Now.ToString("D");      //2008-4-24      System.DateTime.Now.ToString("d");      //2008年4月24日 16:30:15      System.DateTime.Now.ToString("F

  • ASP.NET 日期处理函数

     1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=cu

  • asp.net中System.DateTime.Now.ToString()的一些用法

    Asp.net中的日期处理函数 //2007年4月24日 this.TextBox6.Text = System.DateTime.Now.ToString("D"); //2007-4-24 this.TextBox7.Text = System.DateTime.Now.ToString("d"); //2007年4月24日 16:3...

  • asp.net获取当前时间

    <br />在c# / ASP.net中我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。<br />//获取日期+时间<br />DateTime.Now.ToString();            // 2008-9-4 20:02:10<br />DateTime.Now.ToLocalTime().ToString();      

  • 日期转换函数列表

    Function Date1()Dim NewTime as DateTimeNewTime = DateTime.Now.Subtract( New TimeSpan(7, 0, 0, 0) )NewTime = NewTime.Format("MM/dd/yyyy", DateTimeFormatInfo)response.write(NewTime)End Function 'Uses ...

  • ASP日期和时间函数

    --  ASP日期和时间函数.....ASP日期和时间函数.....[顶楼]在脚本中增加日期和时间函数 &amp;lt;%=year(now)%&amp;gt;年&amp;lt;%=month(now)%&amp;gt;月&amp;lt;%=day(now)%&amp;gt;日 &amp;lt;%=weekdayname(weekday(now))%&amp;gt; 显示: 今日是: 2003年10月31日 星期五 VBScript有许多函数,使你可以得到各种...

  • ASP.Net 获取服务器的当前日期时间的综合处理函数!

    //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateString().ToString(); // 2008年

  • Linux操作系统相关习题集

    Linux操作系统相关习题集,包含常用名、Linux系统基础知识等

  • 基于java的-30-「计算机毕业设计」基于net的湖南特产销售网站-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

  • JVM+Java程序运行过程内存分配图解

    1、JVM 内存分配图解的 Visio 工程图。 2、直接下载使用、可自行调整和修改

  • IOC智慧运营中心平台整体解决方案qy.pptx

    IOC智慧运营中心平台整体解决方案qy.pptx

  • node-v12.22.8-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics