Spark 机器学习《一》

来源:互联网 发布:jd是网络用语什么意思 编辑:程序博客网 时间:2024/05/17 23:10
1.机器学习
(1)介绍
机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中 改善具体算法的性能。 
机器学习是对能通过经验自动改进的计算机算法的研究。
机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
A computer program is said to learn from experience E with respect to some class of tasks
T and performance measure P, if its performance at tasks in T, as measured by P, improves
with experience E.


(2)机器学习应用十分广泛
– 数据挖掘
– 计算机视觉
– 自然语言处理
– 生物特征识别
– 搜索引擎
– 医学诊断
– 检测信用卡欺诈
– 证券市场分析
– DNA 序列测序 
– 语音和手写识别
– 战略游戏和机器人运用


(层次聚类鸟类进化分类)

(3)机器学习分类
监督学习从给定的训练数据集中学习出一个函数(模型),当新的数据到来时,可以根据这个函 数(模型)预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练 集中的目标是由人标注(标量 ) 的。常见的监督学习算法包括回归分析和统计分类。 
– 二元分类是 ML 要解决的基本问题,将测试数据分成两个类。如圾邮件的判别、房贷是否允许等等问题的判断。
– 多元分类是二元分类的逻辑延伸。例如,在因特网的流分类的情况下,根据问题的网页可以 被归类为体育,新闻,技术,或成人 / 色情,依此类推。 
无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。
半监督学习介于监督学习与无监督学习之间。
增强学习通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到 的周围环境的反馈来做出判断。

(4)机器学习常用算法

2.MLlib
(1)介绍

MLbase有三大组件 ML Optimizer,MLI,MLib.但是目前 ML Optimizer,MLI还不够完善,没有得到很好发布。

(2)MLlib特点
1)性能

上图是在逻辑回归上与hadoop性能的比较(差不多一百多倍)

2)集成
可以与Spark其他组件进行集成

3)易用
第一步:读数据,进行向量化或者矩阵化
第二步:设置参数
第三步:进行模型训练
第四步:对数据进行预测
第五步:进行评估

3.MLlib 构成
主要有三部分组成:
第一部分:实用程序部分使用算法)     第二部分:基础部分线性代数的运行库)     第三部分:算法部分算法库

(1)实用程序部分


(2)基础部分

1)向量

稀疏向量只列出非0的元素,记录大小,非0元素 索引,值。
由此可以看到稀疏向量不但能够节省空间,还能够提升计算的性能。

2)矩阵
本地矩阵

用法:


分布式矩阵

由此可见每个元素在不同的RDD中。

行矩阵


带有索引的行矩阵


坐标式矩阵
多用于稀疏矩阵性能较高的计算中


(3)算法部分


4.MLlib 运行结构






0 0