spark PIPELINE 的交叉驗證

2021-07-11 23:19:33 字數 887 閱讀 2192

1.建立crossvalidator

val crossval = new crossvalidator()

.setestimator(pipeline)

.setevaluator(new binaryclassificationevaluator)

第乙個是pipeline程式

第二個是模型的求值函式

2.pipeline以前構造過,這裡省過

3.這裡值得學習的是ml api提供了乙個幫助我們尋找最佳引數的api

val paramgrid = new paramgridbuilder()

.addgrid(hashingtf.numfeatures, array(10, 100, 1000))

.addgrid(lr.regparam, array(0.1, 0.01))

.build()

我們通過addgrid新增我們需要尋找的最佳引數

接著往crossval新增

crossval.setestimatorparammaps(paramgrid)

crossval.setnumfolds(2) // use 3+ in practice

// run cross-validation, and choose the best set of parameters.

val cvmodel = crossval.fit(training.todf())

4.驗證

cvmodel.transform(test.todf())

.select("id", "text", "probability", "prediction")

.collect()

.foreach

兩陣列的交 和 兩陣列的交

題目描述 計算兩個陣列的交 解題思路 這兩個題我放在一起了,只要會兩個陣列的交就行了,兩個陣列的交 幾乎一樣,就是刪了一點 先分別對兩個陣列排序,然後分別比較兩個陣列的元素,如果有相同的元素插入到新的陣列裡,將這個數儲存起來,用於後面去掉重的元素,如果兩個元素不一樣,繼續比較剩下的元素。兩個陣列的交...

矩形的並和交

給定乙個矩形的左下角座標和右上角座標分別為 x1,y1 x2,y2 對這樣的乙個矩形,我們構造兩條線段,一條定位在x1,它在y座標的區間是 y1,y2 並且給定乙個cover域值為1 另一條線段定位在x2,區間一樣是 y1,y2 給定它乙個cover值為 1。根據這樣的方法對每個矩形都構造兩個線段,...

兩陣列的交

返回兩個陣列的交 樣例nums1 1,2,2,1 nums2 2,2 返回 2 先排序,從nums1陣列中取數判斷時,若nums1 i nums2 j 才繼續遍歷nums2,並用乙個k值記錄nums2中比nums1 i 1 小的最大數的角標,下次判斷nums i 時nums2從k值開始取。class...