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

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

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

测试:

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

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


# Dependencies

from pyspark.ml.regression import GBTRegressor
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
from pyspark.ml.evaluation import RegressionEvaluator

# Model

gbt = GBTRegressor(labelCol="label")
paramGrid = (ParamGridBuilder()\
  .addGrid(gbt.maxDepth, [3, 7])\
  .addGrid(gbt.maxIter, [10, 20])\
  .build())

# Evaluation metric

evaluator = RegressionEvaluator(metricName="rmse", labelCol=gbt.getLabelCol(), 
predictionCol=gbt.getPredictionCol())

# CrossValidator

cv = CrossValidator(estimator=gbt, 
                evaluator=evaluator, 
                estimatorParamMaps=paramGrid, 
                numFolds=3)

# Predictions

fitModel = cv.fit(train)
predictions = fitModel.transform(test)
rmse = evaluator.evaluate(predictions)
print(rmse)

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

暂无答案!

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

相关问题