1.Spark ML学习笔记—Spark MLlib 与 Spark ML、Pipelines 的主要概念
2021/9/20 23:33:56
本文主要是介绍1.Spark ML学习笔记—Spark MLlib 与 Spark ML、Pipelines 的主要概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文目录如下:
- 第1章 Spark 机器学习简介
- 1.1 Spark MLlib 与 Spark ML
- 1.1.1 Spark MLlib
- 1.1.2 Spark ML (重点)
- 1.2 Pipelines 的主要概念
- 1.2.1 Transformer (转换器)
- 1.2.2 Estimator (模型学习器)
- 1.3 实例: Estimator, Transformer, Param
第1章 Spark 机器学习简介
1.1 Spark MLlib 与 Spark ML
1.1.1 Spark MLlib
- (1)
Spark MLlib
是 Spark 的可扩展机器学习库,提供基于RDD
的 API。 - (2) 在
Spark 2.x
版本中,MLlib
将向基于DataFrame
的 API 添加功能。并且MLlib
中基于DataFrame
的 API 将成为主流,MLlib
的 API 更加偏向于底层,可以灵活多变的修改逻辑。 - (3)
MLlib
的 API不 会被ML
替代。
1.1.2 Spark ML (重点)
- (1)
Spark ML
提供了一个基于DataFrame(数据帧)
构建的更高级的 API, 从而用于构建机器学习工作流ML Pipeline
。 - (2)
Spark ML
为主要学习的技术, 因为 API 能更灵活、更具弹性地使用DataFrame
。
1.2 Pipelines 的主要概念
1.2.1 Transformer (转换器)
转换器
是 特征变换 和 机器学习 模型的抽象。转换器必须实现transform
方法,这个方法将一个DataFrame
转换成另一个DataFrame
,通常是附加一个或者多个列。
1.2.2 Estimator (模型学习器)
也称为了评估器吗?
-
(1)
Estimators
模型学习器是 拟合 和 训练数据 的机器学习算法或者其他算法的抽象。 -
(2)
Estimator
实现fit()
方法,这个方法输入一个DataFrame
并产生一个Model
即一个Transformer
(转换器)。 -
(3) 例如:一个机器学习算法是一个
Estimator
模型学习器 ,比如这个算法是LogisticRegression
(逻辑回归),调用fit()
方法训练出一个LogisticRegressionModel
,这是一个Model
,因此也是一个Transformer
(转换器)。
1.3 实例: Estimator, Transformer, Param
import org.apache.spark.ml.feature._ import org.apache.spark.ml.classification.LogisticRegression import org.apache.spark.m1.{ Pipeline, PipelineModel } import org.apache.spark.ml.param.ParamMap import org.apache.spark.ml.linalg.{Vector, Vectors} import org.apache.spark.sql.Row import org.apache.spark.sql.SparkSession // 1.训练样本 val training = spark.createDataFrame(Seq( (1.0, Vectors.dense(0.0, 1.1, 0.1)), (0.0, Vectors.dense(2.0, 1.0, -1.0)), (0.0, Vectors.dense(2.0, 1.3, 1.0)), (1.0, Vectors.dense(0.0, 1.2, -0.5)))).toDF("label", "features") // 2.创建逻辑回归 Estimator val lr = new LogisticRegression( ) println("LogisticRegression parameters:\n" + lr.explainParams() + "\n") // 3.通过setter方法设置模型参数 lr.setMaxIter(10) .setRegParam(0.01) // 4.训练模型 val model1 = lr.fit(training) println("Model 1 was fit using parameters: " + model1.parent.extractParamMap) // 5.通过ParamMap设置参数方法 val paramMap = ParamMap(lr.maxIter -> 20) .put(lr.maxIter, 30) .put(lr.regParam -> 0.1, lr.threshold -> 0.55) // 5.ParamMap合并 val paramMap2 = ParamMap(lr.probabilityCol -> "myProbability") val paramMapCombined = paramMap ++ paramMap2 // 6.训练模型,采用paramMap参数 // paramMapCombined会覆盖所有lr.set设置的参数 val model2 = lr.fit(training, paramMapCombined) println("Model 2 was fit using parameters: " + model2.parent.extractParamMap) // 7.测试样本 val test = spark.createDataFrame(Seq( (1.0, Vectors.dense(-1.0, 1.5, 1.3 )), (0.0, Vectors.dense(3.0, 2.0, -0.1)), (1.0, Vectors.dense(0.0, 2.2, -1.5)))).toDF("label", "features") // 8.对模型进行测试 model2.transform(test) .select("features", "label", "myProbability", "prediction") .collect() .foreach { case Row(features: Vector, label: Double, prob: Vector, prediction: Double) => println(s"($features, $label) -> prob=$prob, prediction=$prediction") }
这篇关于1.Spark ML学习笔记—Spark MLlib 与 Spark ML、Pipelines 的主要概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?