Spark ML
spark.mllib
基于RDD的数据抽象
spark.ml
基于DataFrame的数据抽象
当前常用的库
MLlib目前支持4种常见的机器学习问题:
分类,回归,聚类和协同过滤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I3nkEscT-1609041103285)(E:\大学作业\000_机器学习\work2\sparkml.png)]
机器学习流水线
-
DataFrame
可以容纳各种数据类型,而且类似传统数据库中的二维表格。
它被MLPipeline用来存储元数据,例如DataFrame中的列可以是存储的文本,特征向量,真是标签和预测的标签
-
Transformer(转换器)
把一个DF转换为另一个DF;例如把不包含预测标签的测试数据集DF打上标签,转化为另一个包含预测标签的DF
Transformer实现了一个方法transform(),通过附加一个或多个列将一个DF转换为另一个DF
-
Estimator(评估器)
是学习算法或在训练数据上的训练方法的概念抽象。
在Pipeline里通常是被用来操作DF数据并生成一个Transformer
通过调用fit(),通过训练特征数据而得到一个模型
-
Pipeline(流水线)
就是将多个工作流阶段(转换器和评估器)连接在一起,形成机器学习的工作流
Pipeline也可以看作是一个评估器,通过调用fit()得到一个PipelineModel类实例
特征转换
为了方便相关算法的实现,经常需要把数据标签(string)转换成整数所以,或是在计算结束后将整数索引还原为相应的标签
StringIndexer
StringIndexer转换器可以把一列类别型的特征进行编码,使其数值化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAvvOkFR-1609041103287)(E:\大学作业\000_机器学习\work2\stringindexer.png)]
IndexToString
与StringIndexer相对应,IndexToString的作用是把标签索引的一列重新映射回原有的字符型标签;主要是和StringIndexer配合
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QeEdeU5u-1609041103289)(E:\大学作业\000_机器学习\work2\indextostring.png)]
VectorIndexer
gIndexer配合
[外链图片转存中…(img-QeEdeU5u-1609041103289)]
VectorIndexer
前两个是针对单个类别型特征进行转换;若所有特征都被组织在一个向量中,又想对其中某些单个分量进行处理时可以用VectorIndexer用来解决向量数据集中的某个类别性特征转换