所有的 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 的算法,這種方法比較實用。