jch 4 maanden geleden
bovenliggende
commit
d65bc2586a

+ 14 - 3
recommend-model-produce/src/main/scala/com/tzld/piaoquan/recommend/model/pred_recsys_61_xgb_nor_hdfsfile_20241209.scala

@@ -84,9 +84,11 @@ object pred_recsys_61_xgb_nor_hdfsfile_20241209 {
       .setPredictionCol("prediction")
       .setMetricName("rmse")
     val rmse = evaluator.evaluate(predictions.select("label", "prediction"))
+    val selfRmse = calRMSE(predictions.select("label", "prediction").rdd)
     val rmsle = calRMSLE(predictions.select("label", "prediction").rdd)
-    println("recsys rov:rmse:" + rmse)
-    println("recsys nor: rmsle:" + rmsle)
+    printf("recsys nor:rmse: %.6f\n" + rmse)
+    printf("recsys nor:selfRmse:%.6f\n" + selfRmse)
+    printf("recsys nor:rmsle: %.6f\n" + rmsle)
 
     println("---------------------------------\n")
     println("---------------------------------\n")
@@ -111,12 +113,21 @@ object pred_recsys_61_xgb_nor_hdfsfile_20241209 {
     })
   }
 
+  def calRMSE(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(pred - label, 2)
+    })
+    math.sqrt(sleRdd.sum() / sleRdd.count())
+  }
+
   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()
+    math.sqrt(sleRdd.sum() / sleRdd.count())
   }
 }