为了评价模型,我们需求从pyspark.ml.evaluation中导入RegressionEvaluator。我们必须为此创建一个对象。有一种方法叫 evaluate for evaluator ,它对模型求值。我们需求为此指定度量标准。
from pyspark.ml.evaluation import RegressionEvaluatorevaluator = RegressionEvaluatormse = evaluator.evaluate(predictions,{evaluator.metricName:"mse" })import numpy as npnp.sqrt(mse), mse"""(3832.4796474051345, 14687900.247774584)"""
经过计算,我们可以看到我们的rmse是3827.767295494888。
如今,我们将在一切的train1数据集上再次训练一个模型。
model = rf.fit(train1)predictions1 = model.transform(test1)
预测之后,我们得到测试集预测结果,并将其保存成csv文件。
df = predictions1.selectExpr("User_ID as User_ID", "Product_ID as Product_ID", 'prediction as Purchase')df.toPandas.to_csv('./BlackFriday/submission.csv')