什么是Spark ML中的Param []和Params []

时间:2017-07-06 21:50:52

标签: apache-spark apache-spark-mllib apache-spark-ml

作为统计人员,Spark ML库中ParamParams类的逻辑让我很困惑。由于基础课PipelineStage extends Paramstransformer/estimator(这意味着我的机器学习算法)是PipelineStage的子类。那么Params不只是一个代表一些机器学习参数的简单类吗?在管道中访问某些参数需要父母一定的要求。我对如何出现感到很失落......

Param的任何合理解释?非常感谢!这真让我困惑。

1 个答案:

答案 0 :(得分:0)

我也对这两个概念感到困惑。以下是我对这两个的理解:

Param位于包含scala.annotation.meta

Annotation包中

Params位于org.apache.spark.ml.param包中,即

  

获取参数的组件的特征。这也提供了一个   内部参数映射,用于存储附加到实例的参数值。

虽然Params是使用DeveloperApi的界面,但您可以使用

启动一个界面
/**
 * :: DeveloperApi ::
 * A param with self-contained documentation and optionally default value. Primitive-typed param
 * should use the specialized versions, which are more friendly to Java users.
 *
 * @param parent parent object
 * @param name param name
 * @param doc documentation
 * @param isValid optional validation method which indicates if a value is valid.
 *                See [[ParamValidators]] for factory methods for common validation functions.
 * @tparam T param value type
 */
    class Param[T](val parent: String, val name: String, val doc: String, val isValid: T => Boolean)
      extends Serializable