大数据开发:Spark MLlib组件学习入门

2021-08-02 17:58:20 浏览数 (1)

在Spark生态圈当中,MLlib组件,作为机器学习库而存在,在大数据分析、数据挖掘等数据处理操作上,提供重要的支持。学习Spark,对于MLlib组件的学习,也可以有相应程度的掌握。今天的大数据开发学习分享,我们就来讲讲Spark MLlib组件学习入门。

其实,Spark MLlib在数据挖掘上,与sklearn工具也是非常行相似的,也是Estimator,Transformer,Pipeline为主,如果有sklearn的基础,那么学习MLlib是会非常轻松的。并且,MLlib本身比sklearn还要简单一些,因为MLlib库中支持的功能相对更少一些,并且MLlib基于DataFrame数据比sklearn基于numpy array会更加直观一些。

一、MLlib基本介绍

MLlib包括以下主要功能——

实用工具:线性代数,统计,数据处理等工具

特征工程:特征提取,特征转换,特征选择

常用算法:分类,回归,聚类,协同过滤,降维

模型优化:模型评估,参数优化

MLlib库包括两个不同的部分——

spark.mllib包含基于rdd的机器学习算法API,目前不再更新,在3.0版本后将会丢弃,不建议使用。

spark.ml包含基于DataFrame的机器学习算法API,可以用来构建机器学习工作流Pipeline,推荐使用。

二、MLlib基本概念

DataFrame:MLlib中数据的存储形式,其列可以存储特征向量,标签,以及原始的文本,图像。

Transformer:转换器。具有transform方法。通过附加一个或多个列将一个DataFrame转换成另外一个DataFrame。

Estimator:估计器。具有fit方法。它接受一个DataFrame数据作为输入后经过训练,产生一个转换器Transformer。

Pipeline:流水线。具有setStages方法。顺序将多个Transformer和1个Estimator串联起来,得到一个流水线模型。

三、导入数据

可以使用spark.read导入csv,image,libsvm,txt等格式数据。

四、特征工程

spark的特征处理功能主要在spark.ml.feature模块中,包括以下一些功能。

特征提取:Tf-idf,Word2Vec,CountVectorizer,FeatureHasher

特征转换:OneHotEncoderEstimator,Normalizer,Imputer(缺失值填充),StandardScaler,MinMaxScaler,Tokenizer(构建词典),StopWordsRemover,SQLTransformer,Bucketizer,Interaction(交叉项),Binarizer(二值化),n-gram,……

特征选择:VectorSlicer(向量切片),RFormula,ChiSqSelector(卡方检验)

LSH转换:局部敏感哈希广泛用于海量数据中求最邻近,聚类等算法。

五、分类模型

Mllib支持常见的机器学习分类模型:逻辑回归,SoftMax回归,决策树,随机森林,梯度提升树,线性支持向量机,朴素贝叶斯,One-Vs-Rest,以及多层感知机模型。

六、回归模型

Mllib支持常见的回归模型,如线性回归,广义线性回归,决策树回归,随机森林回归,梯度提升树回归,生存回归,保序回归。

七、聚类模型

Mllib支持的聚类模型较少,主要有K均值聚类,高斯混合模型GMM,以及二分的K均值,隐含狄利克雷分布LDA模型等。

八、降维模型

Mllib中支持的降维模型只有主成分分析PCA算法。这个模型在spark.ml.feature中,通常作为特征预处理的一种技巧使用。

九、模型优化

模型优化一般也称作模型选择(Model selection)或者超参调优(hyperparameter tuning)。

Mllib支持网格搜索方法进行超参调优,相关函数在spark.ml.tunning模块中。

关于大数据开发学习,Spark MLlib组件学习入门,以上就为大家做了大致的介绍了。Spark MLlib作为Spark生态圈的重要组件,提供机器学习和算法方面的支持,总的来说实用度还是比较高的。

0 人点赞