优秀大数据GitHub项目一览
http://blog.csdn.net/yaoxtao/article/details/50540485
优秀大数据GitHub项目一览
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(译者/刘旭坤 审校/朱正贵 责编/仲浩)
优秀大数据GitHub项目一览的更多相关文章
- 大数据小项目之电视收视率企业项目09--hive环境搭建
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务 ...
- 大数据小项目之电视收视率企业项目08--》MapReduce编写之Wordcount
编程规范 (1)用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端) (2)Mapper的输入数据是KV对的形式(KV的类型可自定义) (3)Mapper ...
- 【转载】关于大数据库的一些不错的GitHub项目
优秀大数据GitHub项目一览 http://blog.csdn.net/YaoXTao/article/details/50540485
- Spark大型项目实战:电商用户行为分析大数据平台
本项目主要讲解了一套应用于互联网电商企业中,使用Java.Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.页面跳转行为.购物行为.广告点击行为等)进行复杂的分析.用统计分 ...
- 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...
- 工信部<<大数据产业发展规划>>
大数据产业发展规划 (2016-2020年) 发布时间:2017-01-17 来源:规划司 数据是国家基础性战略资源,是21世纪的“钻石矿”.党中央.国务院高度重视大数据在经济社会发展中的作用,党的 ...
- 成都大数据Hadoop与Spark技术培训班
成都大数据Hadoop与Spark技术培训班 中国信息化培训中心特推出了大数据技术架构及应用实战课程培训班,通过专业的大数据Hadoop与Spark技术架构体系与业界真实案例来全面提升大数据工程师 ...
- 民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?【转】
早在今年的上半年我应邀参加了由 Smartbi 主办的一个小型数据分析交流活动,在活动现场第一次了解到了民生银行的阿拉丁项目.由于时间关系,嘉宾现场分享的内容非常有限.凭着多年对行业研究和对解决方案的 ...
- 大数据学习:storm流式计算
Storm是一个分布式的.高容错的实时计算系统.Storm适用的场景: 1.Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中. 2.由于Storm的处理组件都是分布式的, ...
随机推荐
- lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录
基本介绍Linux用户安装Linux 操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.随着 Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解, l ...
- iOS请求服务器数据去空NSNull
我们在处理数据库接口的过程中,如果数据中出现null,我们是没法处理的.我在使用NSUserDaults保存后,出现崩溃. null产生原因 null是后台在处理数据的时候,如果没有设置value值, ...
- FormsAuthentication详解
配置安全鉴别 鉴别是指鉴定来访用户是否合法的过程.ASP.NET Framework支持三种鉴别类型: Windows鉴别: NET Passport鉴别: Forms鉴别. 对于某一特定的应用程序, ...
- Discuz 取各排行榜数据
取论坛指定版块帖子或回复(first=1 就是帖子的1楼, 如果=0 就是调用回复,fid=62 是论坛版块号): SELECT * FROM discuzx.pre_forum_post where ...
- Linux 字符集转化
命令行"iconv --list" 查看Linux操作系统支持的字符集 iconv_open 设置字符集转化 --iconv_t iconv_open(const char *to ...
- 多个相同jar存在时的引用顺序
起因:今天一个aar包在测试环境中正常运行,使用soapui测试正常返回,在本地环境中运行则老是报数据库连接异常,经检查,是因为在运行时环境中缺少ojdbc相关的jar包引起的. 重新打了一个aar包 ...
- mvc4中的 webapi 的使用方式
目录 一:简单介绍什么是Web api 二:怎么定义的 Post Get Put 和 Delete 三:简单使用,直接从前台传递一个类到后台接收 四:其他获取值的方式 一:简单介绍什么是Web api ...
- C#进阶系列——WebApi身份认证解决方案:Basic基础认证 (转)
http://www.cnblogs.com/landeanfen/p/5287064.html 前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人 ...
- 社交网站好友储存设计和实现(PHP+MySQL)
最近手头的一个网站新增社交功能,用户可以互加好友. 通常,对好友列表设计是新增一个好友,就往好友列表新增一行,当要查询一个用户好友 SELECT * FROM WHERE userid="1 ...
- Linux常用指令---定时任务
linux定时任务crontab命令选项基本只有对用户操作选项:-u 指定用户-l 列出某用户任务计划-r 删除某用户任务-e 编辑某用户任务 查看某一用户的定时任务crontab -u root - ...