所有的 Estimator 和 Transformer 使用同一个 API 来指定参数。一个 Param 是被定义好的已命名参数。一个 ParamMap 是一组`参数-值(parameter, value) `对。向一个算法传参的方法主要有两种:
(1)<mark>为实例设置参数。</mark>例如,`lr` 是 LogisticRegression 的一个实例,我们可以通过调用 `lr.setMaxIter(10)` 方法来设定 `lr.fit()` 最多进行 10 次迭代。
(2)<mark>通过 ParamMap 给 `fit()` 和 `transform()` 传参。</mark>ParamMap 中的参数将会覆盖之前通过 setter 方法设置过的参数。
<br/>
如果我们有两个 LogisticRegression 实例 `lr1` 和 `lr2`,可以创建一个包含两个maxIter 的 `ParamMap:ParamMap(lr1.maxIter -> 10, lr2.maxIter -> 20)`。如果一个Pipeline 里有两个带有 maxIter 的算法,这种方法比较实用。