Spark Pipeline - 如何从经过训练的特征转换器中提取属性
Spark Pipeline - How to extract attributes from trained features transformer
我需要从经过训练的转换器中提取属性,以便我可以在以后使用它们,例如来自 QuantileDiscretizer 的 bin 边界,来自 StringIndexer 的名称到索引映射。例如,如何在下面的代码中从 "discretizer_trained" 中提取 bin 边界。
我无法通过谷歌搜索以及官方文档找到介绍 https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.feature.QuantileDiscretizer
//https://spark.apache.org/docs/latest/ml-features.html#quantilediscretizer
import org.apache.spark.ml.feature.QuantileDiscretizer
val data = Array((0, 18.0), (1, 19.0), (2, 8.0), (3, 5.0), (4, 2.2))
val df = spark.createDataFrame(data).toDF("id", "hour")
val discretizer = new QuantileDiscretizer()
.setInputCol("hour")
.setOutputCol("result")
.setNumBuckets(3)
val discretizer_trained = discretizer.fit(df)
在 Scala Spark 中 运行:
discretizer_trained.getSplits
在您的示例中将生成:
res1: Array[Double] = Array(-Infinity, 5.0, 18.0, Infinity)
我需要从经过训练的转换器中提取属性,以便我可以在以后使用它们,例如来自 QuantileDiscretizer 的 bin 边界,来自 StringIndexer 的名称到索引映射。例如,如何在下面的代码中从 "discretizer_trained" 中提取 bin 边界。 我无法通过谷歌搜索以及官方文档找到介绍 https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.feature.QuantileDiscretizer
//https://spark.apache.org/docs/latest/ml-features.html#quantilediscretizer
import org.apache.spark.ml.feature.QuantileDiscretizer
val data = Array((0, 18.0), (1, 19.0), (2, 8.0), (3, 5.0), (4, 2.2))
val df = spark.createDataFrame(data).toDF("id", "hour")
val discretizer = new QuantileDiscretizer()
.setInputCol("hour")
.setOutputCol("result")
.setNumBuckets(3)
val discretizer_trained = discretizer.fit(df)
在 Scala Spark 中 运行:
discretizer_trained.getSplits
在您的示例中将生成:
res1: Array[Double] = Array(-Infinity, 5.0, 18.0, Infinity)