我有一個LinearRegression
模型受過歷史數據的訓練,現在我試圖在新數據上重複使用同一模型來進行預測。對新數據保存並重用spark mllib LinearRegression模型
我知道我們可以分別使用model.save
和LinearRegression.load
方法保存和加載模型,但是,我無法找到一種方法將新數據傳遞到加載模型進行預測。
代碼,用於創建和培訓模型粘貼如下:
val assembler = new VectorAssembler().setInputCols(Array("total", "connected", "c_403", "c_480", "c_503", "hour", "day_of_week")).setOutputCol("features")
val output = assembler.transform(df).select($"label", $"features")
val Array(training, test) = output.select("label", "features").randomSplit(Array(0.7, 0.3), seed = 12)
val lr = new LinearRegression()
val paramGrid = new ParamGridBuilder().addGrid(lr.regParam, Array(0.1, 0.01)).addGrid(lr.fitIntercept).addGrid(lr.elasticNetParam, Array(0.0, 0.25, 0.5, 0.75, 1.0)).build()
val trainvalSplit = new TrainValidationSplit().setEstimator(lr).setEvaluator(new RegressionEvaluator()).setEstimatorParamMaps(paramGrid).setTrainRatio(0.75)
val model = trainvalSplit.fit(training)
val holdout = model.transform(test).select("prediction","label")
你想用新的數據再訓練你的模型? – eliasah
嗯實際上,我想用這個訓練好的模型來預測新數據 – Waqas
你如何保存你的模型?我沒有在你分享的代碼中看到 – eliasah