spark-gbtregressor给出的rmse与预测不匹配

djp7away  于 2021-07-09  发布在  Spark
关注(0)|答案(0)|浏览(253)

这就是我已经矢量化的训练和测试数据集对于mllib的样子:
列车:

测试:

为避免数据泄露,这两种方法都是分开处理的(只对缺失值进行了插补)。当我尝试用梯度推进来预测结果时,我得到的结果如下:

但是,evaluator显示的结果与两个数据集的数据范围预测中显示的错误范围不匹配。具体来说,我得到的rmse是683.62。如果我将evaluator度量更改为mse,那么也会得到一个与预测结果不匹配的值。

  1. # Dependencies
  2. from pyspark.ml.regression import GBTRegressor
  3. from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
  4. from pyspark.ml.evaluation import RegressionEvaluator
  5. # Model
  6. gbt = GBTRegressor(labelCol="label")
  7. paramGrid = (ParamGridBuilder()\
  8. .addGrid(gbt.maxDepth, [3, 7])\
  9. .addGrid(gbt.maxIter, [10, 20])\
  10. .build())
  11. # Evaluation metric
  12. evaluator = RegressionEvaluator(metricName="rmse", labelCol=gbt.getLabelCol(),
  13. predictionCol=gbt.getPredictionCol())
  14. # CrossValidator
  15. cv = CrossValidator(estimator=gbt,
  16. evaluator=evaluator,
  17. estimatorParamMaps=paramGrid,
  18. numFolds=3)
  19. # Predictions
  20. fitModel = cv.fit(train)
  21. predictions = fitModel.transform(test)
  22. rmse = evaluator.evaluate(predictions)
  23. print(rmse)

有人知道为什么评估器与显示的结果根本不匹配吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题