2017-07-06 48 views
2

作为一名统计人员,Spark ML库中ParamParams类的逻辑让我困惑不已。由于基础类PipelineStage extends Paramstransformer/estimator(这意味着我的机器学习算法)是子类别PipelineStage。那么Params是不是一个简单的类代表一些机器学习参数?而在管道中使用某些参数需要某些家长的要求。我只是很迷茫,这是怎么出来的......什么是Spark ML中的Param []和Params [] ML

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

回答

0

我也被这两个概念搞糊涂了。下面是我这两种理解:

Param是在扩展Annotation

Params在包org.apache.spark.ml.param,这是

特质为带参数的组件的封装件scala.annotation.meta。这还提供了一个 内部参数映射来存储附加到实例的参数值。

虽然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 
相关问题