大数据人工智能技术全攻略(二)


大数据人工智能常见技术框架和算法的知识详细概要

Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来 部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集 (large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了 计算。

1、Hadoop是个数据库,存储用。分布式,存量大

2、计算引擎,拿里面的数据做运算,跑的快。一声令下,多台机器团结合作,每台机器分自己一部分任务,同时幵行跑。等所有机器小任务跑完,汇集报道,总任务全部完成。

Spark

Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在2009年由加州大学伯克利分校的AMPLab开发, 并于2010年成为Apache的开源项目之一。

与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势。

分享之前我还是要推荐下我自己创建的大数据学习交流Qun710219868 进Qun聊邀请码填写 南风(必填)我就知道是你了 首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量 数据或实时的流数据)的大数据处理的需求。

Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍。

Spark让开发者可以快速的用Java、Scala或Python编写程序。它本身自带了一个超过80个高阶操作符集合。而且还可以用它在 shell中以交互式地查询数据。

除了Map和Reduce操作之外,它还支持SQL查询,流数据,机器学习和图表数据处理。开发者可以在一个数据管道用例中单独使 用某一能力或者将这些能力结合在一起使用。

Hadoop和Spark Hadoop这项大数据处理技术大概已有十年历史,而且被看做是首选的大数据集合处理的解决方案。MapReduce是一路计算的优秀解决方案,不过对于需要多路计算和算法的用例来说,并非十分高效。数据处理流程中的每一步都需要一个Map阶段和一个 Reduce阶段,而且如果要利用这一解决方案,需要将所有用例都转换成MapReduce模式。

1、Spark不存储数据,只做计算。计算的时候他使用hadoop里面的数据做运算。Local也可以用本地服务器数据。

2、功能多:spark steaming流计算,Spark SQL、机器学习库,图计算,也有一个深度学习

Hive

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语 句转换为MapReduce任务进行运行。

其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专 门的MapReduce应用,十分适合数据仓库的统计分析。Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以 存储、查询和分析存储在 Hadoop 中的大规模数据的机制。

Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的 用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

Hive 没有专门的数据格式。Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允许用户指定数据格式。

1.分布式数据仓库的首选,互联网公司的标配

2、SQL语句做数据分析和处理,功能强

Strom

Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。

Storm有很多使用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。

Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个结点每秒可以处 理数以百万计的消息)。

Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。

Storm结构称为topology(拓扑),由stream(数据流)、spout(数据流的生成者)、bolt(数据流运算者)组成。

1.分布式实时计算,毫秒级别的延迟,说是实时,也是做离线处理用的。Java web接口那个才叫 真正的实时响应。

2、准实时分析,准在线机器学习,准实时场景。有延迟,但不用一天算一次,或几小时一次了。

Hbase

HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问,是Google的BigTable的开源实现。HBase的目 标是存储并处理大型的数据,更具体地说仅用普通的硬件配置,能够处理成千上万的行和列所组成的大型数据库。

HBase是一个开源的、分布式的、多版本的、面向列的存储模型。可以直接使用本地文件系统也可使用Hadoop的HDFS文件存储 系统。为了提高数据的可靠性和系统的健壮性,并且发挥HBase处理大型数据的能力,还是使用HDFS作为文件存储系统更佳。

另外,HBase存储的是松散型数据,具体来说,HBase存储的数据介于映射(key/value)和关系型数据之间。

HBase 存储的数据从逻辑上看就是一张很大的表,并且它的数据列可以根据需要动态增加。每一个cell中的数据又可以有多个版本(通过 时间戳来区别)

HBase还具有“向下提供存储,向上提供运算”的特点。

1.Hbase是建立在Hadoop之上的数据库,没有Hadoop基础平台Hbase根本跑不了。底层存储用的 Hadoop的HDFS

2.分布式,key/value,但是一个value,是多个value,也就是多个列

Solr

Solr是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。

Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配 置,而且附带了一个基于 HTTP 的 管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。

solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎 库完全兼容。

通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。

此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。可以使用 Solr 的表现优异的基本搜索功能,也可 以对它进行扩展从而满足企业的需要。

1.用于全文检索搜索引擎,很多电商、招聘网站的搜索功能

2.底层基于Lucene搜索java类库

Elasticsearch

Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、 性能最好的、功能最全的搜索引擎库。

Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以扩展到上百台服务器,处理PB级结构化或非结构化数据 面向文档 应用中的对象很少只是简单的键值列表,更多时候它拥有复杂的数据结构,比如包含日期、地理位置、另一个对象或者数组。总有一天你会想到把这些对象存储到数据库中。将这些数据保存到由行和列组成的关系数据库中,就好像是把一个丰富,信息表 现力强的对象拆散了放入一个非常大的表格中:你不得不拆散对象以适应表模式(通常一列表示一个字段),然后又不得不在查 询的时候重建它们。

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还 会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排 序、过滤。这种理解数据的方式与以往完全不同,这也是Elasticsearch能够执行复杂的全文搜索的原因之一。

1.和solr一样都是全文搜索引擎, ELK的E指的就是他。

2.也是基于Lucene的java类库,和solr基本差不多

LDA潜在狄利克雷分布模型


在这里插入图片描述
在这里插入图片描述

MinHash聚类

MinHash是LSH的一种,可以用来快速估算两个集合的相似度。MinHash由Andrei Broder 提出,最初用于在搜索引擎中检测重复网页。它也可以应用于大规模聚类问题。

相似性度量:Jaccard index[2]是用来计算相似性,也就是距离的一种度量标准。假如有集合A、B,那 么J(A,B)=(A intersection B)/ (A union B) 也就是说,集合A,B的Jaccard系数等于A,B中共同拥有的元素数与A,B总共拥有的元素数的 比例。很显然,Jaccard系数值区间为[0,1]。

Mahout的minhash实战:输入和输入都是序列化文件,不是文本文件。但可以通过debugOutput参数配置输出是否是序列化文件

命令:mahout minhash --input /vsm1/reuters-vectors/tfidf-vectors --output /minhash/output – minClusterSize 2 --minVectorSize 3 --hashType LINEAR --numHashFunctions 20 – keyGroups 3 --numReducers 1 -ow

Kmeans聚类

K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。Kmeans算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归 类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。假设要把样本集分为c个类别

算法描述如下:
(1)适当选择c个类的初始中心;
(2)在第k次迭代中,对任意一个样本,求其到c各中心的距离,将该样本归到距离最短 的中心所在的类;
(3)利用均值等方法更新该类的中心值;
(4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则 迭代结束,否则继续迭代。
该算法的最大优势在于简洁和快速。算法的关键在于初始中心的选择和距离公式。

流程:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象, 则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚 类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象 的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作 为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽 可能的分开。
在这里插入图片描述
在这里插入图片描述

Canopy聚类

Canopy聚类是一个将对象分组到类的简单、快速、精确的方法。每个对象用多维 特征空间里的一个点来表示。这个算法使用一个快速近似距离度量和两个距离阈值 T1>T2来处理。基本的算法是,从一个点集合开始并且随机删除一个,创建一个包含这 个点的Canopy,并在剩余的点集合上迭代。对于每个点,如果它的距离第一个点的距离 小于T1,然后这个点就加入这个聚集中。

在这里插入图片描述

贝叶斯分类算法

贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯(Naïve Bayes,NB)分类算法可以与决策树和神经网络分类算法 相媲美,该算法能运用到大型数据库中,而且方法简单、分类准确率高、速度快。由于贝叶斯定理假设一个属性值对给定类的影响独立于其它属性的值,而此假设在实际 情况中经常是不成立的,因此其分类准确率可能会下降。为此,就衍生出许多降低独立 性假设的贝叶斯分类算法,如TAN(tree augmented Bayes network)算法。

贝叶斯定理公式:P(A|B)=P(B|A)*P(A)/P(B)

后验概率=先验概率*条件概率

总结

此文章有对应的配套视频,其它更多精彩文章请大家下载充电了么app,可获取千万免费好课和文章,配套新书教材请看陈敬雷新书:《分布式机器学习实战》(人工智能科学与技术丛书)

【新书介绍】
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目

【新书介绍视频】
分布式机器学习实战(人工智能科学与技术丛书)新书【陈敬雷】

视频特色:重点对新书进行介绍,最新前沿技术热点剖析,技术职业规划建议!听完此课你对人工智能领域将有一个崭新的技术视野!职业发展也将有更加清晰的认识!

【精品课程】
《分布式机器学习实战》大数据人工智能AI专家级精品课程

【免费体验视频】:

人工智能百万年薪成长路线/从Python到最新热点技术

从Python编程零基础小白入门到人工智能高级实战系列课

视频特色: 本系列专家级精品课有对应的配套书籍《分布式机器学习实战》,精品课和书籍可以互补式学习,彼此相互补充,大大提高了学习效率。本系列课和书籍是以分布式机器学习为主线,并对其依赖的大数据技术做了详细介绍,之后对目前主流的分布式机器学习框架和算法进行重点讲解,本系列课和书籍侧重实战,最后讲几个工业级的系统实战项目给大家。 课程核心内容有互联网公司大数据和人工智能那些事、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)、就业/面试技巧/职业生涯规划/职业晋升指导等内容。

【充电了么公司介绍】

充电了么App是专注上班族职业培训充电学习的在线教育平台。

专注工作职业技能提升和学习,提高工作效率,带来经济效益!今天你充电了么?

充电了么官网
http://www.chongdianleme.com/

充电了么App官网下载地址
https://a.app.qq.com/o/simple.jsp?pkgname=com.charged.app

功能特色如下:

【全行业职位】 - 专注职场上班族职业技能提升

覆盖所有行业和职位,不管你是上班族,高管,还是创业都有你要学习的视频和文章。其中大数据智能AI、区块链、深度学习是互联网一线工业级的实战经验。

除了专业技能学习,还有通用职场技能,比如企业管理、股权激励和设计、职业生涯规划、社交礼仪、沟通技巧、演讲技巧、开会技巧、发邮件技巧、工作压力如何放松、人脉关系等等,全方位提高你的专业水平和整体素质。

【牛人课堂】 - 学习牛人的工作经验

1.智能个性化引擎:

海量视频课程,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习课程。

2.听课全网搜索

输入关键词搜索海量视频课程,应有尽有,总有适合你的课程。

3.听课播放详情

视频播放详情,除了播放当前视频,更有相关视频课程和文章阅读,对某个技能知识点强化,让你轻松成为某个领域的资深专家。

【精品阅读】 - 技能文章兴趣阅读

1.个性化阅读引擎:

千万级文章阅读,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习文章。

2.阅读全网搜索

输入关键词搜索海量文章阅读,应有尽有,总有你感兴趣的技能学习文章。

【机器人老师】 - 个人提升趣味学习

基于搜索引擎和智能深度学习训练,为您打造更懂你的机器人老师,用自然语言和机器人老师聊天学习,寓教于乐,高效学习,快乐人生。

【精短课程】 - 高效学习知识

海量精短牛人课程,满足你的时间碎片化学习,快速提高某个技能知识点。

猜你喜欢

转载自blog.csdn.net/weixin_52610848/article/details/111572132
今日推荐