1.2开始spark机器学习库包分为两个:MLlib囷ML。MLlib包是基于RDD(弹性分布式数据集)ML包是基于DataFrame。RDD比DataFrame更“低级”因为它们向最终用户揭示了物理执行特征(比如分区),基于DataFrame的API更加的用户友好、简洁从Spark2.0开始,基于RDD的API进入维护模式(即不增加任何新的特性)并预期于3.0版本的时候被移除出MLLib。因此建议学习机器学习时使用ML包
Spark机器学习的流程和传统的机器学习流程一样,即:数据处理—建模—模型评估
- 数据处理:特征类型通常有数值特征、类别特征、文本特征等数值特征可直接作为特征向量的维度使用;类别特征通常会进行编号,将其转化为数值特征;文本特征需要进行分词、去停用词、词稀疏编码(如StringIndexer)等处理数据处理有时还需要特征归一化、正则化或二值化等。最终通常将各变量划分为两部分:由各自变量组成的特征向量(features)和被视为因变量的目标变量(label)
- 建模:目前spark机器学习库里包含了常见的传统机器学习的算法(分类、回归、聚类、降维、协同推荐、異常检测、降维等),如分类算法有线性支持向量机(LinearSVM)、逻辑回归、决策树、梯度提升树、随机森林、朴素贝叶斯、多元感知机、一对多分類器等更多请查看官方文档
- 参数设置:参数设置通常有两种方式,一种是在创建模型时对各所需参数进行设置;另一种是使用网格搜索一次性传入多个参数值通过模型评估得到其中最佳的参数值建立模型。通过网格搜索的方法通常要与交叉验证(CrossValidator)和训练-验证切分(TrainValidationSplit)结合使用
- 在Spark的ml中实现了三种impurity的度量方法:信息熵Entropy、基尼系数Gini、方差Variance。其中Entropy和Gini用来处理离散值即处理分类问题,而Variance用来处理连续值即回归
- Estimator:翻譯成估计器或评估器,它是学习算法或在训练数据上的训练方法的概念抽象在 Pipeline 里通常是被用来操作 DataFrame 数据并生产一个 Transformer。
- PipeLine:翻译为工作流或鍺管道工作流将多个工作流阶段(转换器和估计器)连接在一起,形成机器学习的工作流并获得结果输出。
- 要构建一个 Pipeline工作流首先需要定义 Pipeline 中的各个工作流阶段PipelineStage(即转换器和评估器)
# 各特征组成一个特征向量(属于Transformer # 建立一个朴素贝叶斯模型(属于Estimator
内容:pyspark实现逻辑回归②元分类