|
@@ -84,7 +84,9 @@ object pred_recsys_61_xgb_nor_hdfsfile_20241209 {
|
|
|
.setPredictionCol("prediction")
|
|
|
.setMetricName("rmse")
|
|
|
val rmse = evaluator.evaluate(predictions.select("label", "prediction"))
|
|
|
+ val rmsle = calRMSLE(predictions.select("label", "prediction").rdd)
|
|
|
println("recsys rov:rmse:" + rmse)
|
|
|
+ println("recsys nor: rmsle:" + rmsle)
|
|
|
|
|
|
println("---------------------------------\n")
|
|
|
println("---------------------------------\n")
|
|
@@ -109,4 +111,12 @@ object pred_recsys_61_xgb_nor_hdfsfile_20241209 {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ def calRMSLE(evalRdd: RDD[Row]): Double = {
|
|
|
+ val sleRdd = evalRdd.map(raw => {
|
|
|
+ val label = raw.get(0).toString.toDouble
|
|
|
+ val pred = raw.get(1).toString.toDouble
|
|
|
+ math.pow(math.log(pred + 1) - math.log(label + 1), 2)
|
|
|
+ })
|
|
|
+ sleRdd.sum() / sleRdd.count()
|
|
|
+ }
|
|
|
}
|