spark-8

基于MLlib的机器学习
把数据以RDD的形式表示,然后在分布式数据集上调用各种算法,MLlib引入一些数据类型(点 向量),MLlib就是RDD上一系列
可供调用的函数的集合,
比如,如果要用MLlib来完成文本分类的任务
1.首先用RDD来表示你的消息
2.运行MLlib中一个特征提取算法来把文本数据转换为数值特征,该操作返回一个向量RDD。
3.对向量RDD调用分类算法,这不会返回一个模型对象,可以使用该对象对新的数据点进行分类
4.使用MLlib的评估函数在测试数据集上评估模型。
分布式随机森林算法,聚类交替最小二乘算法。

机器学习算法尝试根据训练数据使得算法行为的数学目标最大化,并以此来进行预测或做出决定,
机器学习可分为:分类、回归、聚类。每种都有不一样的目标
分类:基于已经被标记的其他数据点(比如一些已经被标记为垃圾邮件或非垃圾邮件)作为例子来识别一个数据点属于几个类别中的哪一种。

所有的学习算法都需要定义每个数据点的特征集,也就是传给学习函数的值。
大多数算法都只是专为数值特征定义的,因此提取特征并转化为特征向量是机器学习过程中最重要的一步。
当数据已经成为特征向量的形式后,大多数机器学习算法都会根据这些向量优化一个定义好的数学函数,例如,某个分类算法
可能会在特征向量的空间中定义出一个平面。使得这个平面能最好地被这个平面正确分类。算法会在运行结束时返回一个代表
学习决定的模型。而这个模型就可以用来对新的点进行预测。

数据点—特征提取为特征向量–训练–得出模型
数据类型

Vector:数学向量 支持稠密向量也支持稀疏向量,前者表示向量的每一位都存储下来,后者则只存储非零位以节约空间。

LabeledPoint
用来表示带标签的数据点,它包含一个特征向量与一个标签

Rating
用户对一个产品的评分

各种Model类

一个有个predict() 可以用来对新的数据点或数据点组成的RDD应用该模型进行预测。

大多数算法直接操作Vector,LabeledPoint或Rating对象组成的RDD,你可以用任意方式创建出这些对象,不过一般来说你需要通过对外部数据进行转化操作来构建出RDD

操作向量:
稠密向量Vectors.dense(1.0,2.0,3.0)
和稀疏向量Vectors.sparse(4,new int[]{0,2},new double[]{1.0,2.0})

算法:

特征提取

mllib.feature包中包含一些用来进行常见特征转化的类,这些类中有从文本(或其他表示)创建特征向量的算法,也有对特征向量进行
正规化和伸缩变化的方法。

TF-IDF
词频–逆文档频率是一种用来从文本文档中生成特征向量的简单方法。它为文档中的每个词计算两个统计值:一个是词频,
一个是逆文档频率:衡量一个词在整个文档语料库中出现的频繁程度,这些值的乘积展示了一个词与特定文档的相关程度。
HashingTF计算词频向量
IDF计算逆文档频率,调用fit方法获取IDFmodel
缩放:大多数机器学习算法都要考虑特征向量中各元素的幅值,并且在特征缩放调整为平等对待时表现最好的。当构建好特征向量
之后,你可以使用MLlib中的standardScaler类来进行这样的缩放,同时控制均值和标准差。创建一个StandardScaler,对数据集调用
fit函数获取一个StandardScalerModel,然后使用这个模型对象的transform方法来缩放一个数据集。
正规化:使用Normalizer类即可

统计

statistic.colStats(rdd):计算由向量组成的RDD的统计性综述,保存着向量集合中每列的最小值,最大值,平均值和方差。
statistic.corr(rdd,method);计算由向量组成的RDD中的列间的相关矩阵。
statistic.corr(rdd1,rdd2,method):计算由两个浮点值组成的RDD的相关矩阵,使用皮尔森相关或斯皮尔曼相关中的一种

分类与回归

监督式学习的两种主要形式,监督式学习指算法尝试使用有标签的训练数据根据对象的特征预测结果。分类和回归的区别在于预测的
变量类型,在分类中,预测出的变量是离散的。在回归中,预测出的变量是连续的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值