jch 1 bulan lalu
induk
melakukan
8dd69c5fb4

+ 14 - 10
src/main/scala/com/aliyun/odps/spark/examples/myUtils/FeatureTransformV2.java

@@ -37,16 +37,16 @@ public class FeatureTransformV2 {
 
         int week = calendar.get(Calendar.DAY_OF_WEEK);
         int hour = calendar.get(Calendar.HOUR_OF_DAY) + 1;
-        featureMap.put("week", week * 1.0);
-        featureMap.put("hour", hour * 1.0);
+        featureMap.put(String.format("%s@%d", "week", week), 1.0);
+        featureMap.put(String.format("%s@%d", "hour", hour), 1.0);
     }
 
     public static void getUserFeature(Map<String, Map<String, String>> userOriginInfo, Map<String, Double> featMap) {
         oneTypeStatFeature("c1", "return_1_uv", c1Periods, userOriginInfo.get("mid_global_feature_20250212"), featMap);
         Map<String, String> c4Map = userOriginInfo.get("mid_u2u_friend_index_feature_20250212");
-        for (String calType : Arrays.asList("avg_", "max_", "min_")) {
-            getRateStatFeature("c4", calType, c4Periods, c4Map, featMap);
-        }
+//        for (String calType : Arrays.asList("avg_", "max_", "min_")) {
+//            getRateStatFeature("c4", calType, c4Periods, c4Map, featMap);
+//        }
     }
 
     public static void getUserProfileFeature(UserShareReturnProfile profile, Map<String, String> userInfo, Map<String, Double> featMap) {
@@ -160,8 +160,12 @@ public class FeatureTransformV2 {
         if (null == videoInfo || videoInfo.isEmpty()) {
             return;
         }
-        featMap.put(prefix + "@total_time", Double.parseDouble(videoInfo.getOrDefault("total_time", "0")));
-        featMap.put(prefix + "@bit_rate", Double.parseDouble(videoInfo.getOrDefault("bit_rate", "0")));
+        featMap.put(prefix + "@total_time", FeatureUtils.log1(Double.parseDouble(videoInfo.getOrDefault("total_time", "0")), log1Scale));
+        featMap.put(prefix + "@bit_rate", FeatureUtils.log1(Double.parseDouble(videoInfo.getOrDefault("bit_rate", "0")), log1Scale));
+        if (videoInfo.containsKey("width") && videoInfo.containsKey("height")) {
+            String resolution = String.format("%s@%s@%s_%s", prefix, "wh", videoInfo.containsKey("width"), videoInfo.containsKey("height"));
+            featMap.put(resolution, 1.0);
+        }
 
         // cate
         getVideoCateFeature(prefix, videoInfo, featMap);
@@ -327,16 +331,16 @@ public class FeatureTransformV2 {
     private static void headVideoCFD2Feature(String prefix, Map<String, String> infoMap, Map<String, Double> featMap) {
         double score = getOneInfo("score", infoMap);
         double rank = getOneInfo("rank", infoMap);
-        double onlines = getOneInfo("onlines", infoMap);
+        //double onlines = getOneInfo("onlines", infoMap);
         featMap.put(prefix + "_score", score);
         featMap.put(prefix + "_rank", rank);
-        featMap.put(prefix + "_onlines", onlines);
+        //featMap.put(prefix + "_onlines", onlines);
     }
 
     private static void headVideoCFD3Feature(String prefix, Map<String, String> infoMap, Map<String, Double> featMap) {
         double exp = getOneInfo("exp", infoMap);
         double return_n = getOneInfo("return_n", infoMap);
-        double rovn = getOneInfo("rovn", infoMap);
+        double rovn = FeatureUtils.plusSmooth(return_n, exp, smoothPlus);
         featMap.put(prefix + "_exp", FeatureUtils.log1(exp, log1Scale));
         featMap.put(prefix + "_return_n", FeatureUtils.log1(return_n, log1Scale));
         featMap.put(prefix + "_rovn", rovn);