|
@@ -20,6 +20,9 @@ import scala.collection.mutable.ArrayBuffer
|
|
|
|
|
|
object makedata_ad_31_originData_20250110 {
|
|
|
val WILSON_ZSCORE = 1.96
|
|
|
+ val CTR_SMOOTH_BETA_FACTOR = 25
|
|
|
+ val CVR_SMOOTH_BETA_FACTOR = 10
|
|
|
+ val CTCVR_SMOOTH_BETA_FACTOR = 100
|
|
|
|
|
|
def main(args: Array[String]): Unit = {
|
|
|
val spark = SparkSession
|
|
@@ -132,15 +135,16 @@ object makedata_ad_31_originData_20250110 {
|
|
|
val conver = if (bn.isEmpty) 0D else bn.getIntValue("ad_conversion_" + prefix2).toDouble
|
|
|
val income = if (bn.isEmpty) 0D else bn.getIntValue("ad_income_" + prefix2).toDouble
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
+
|
|
|
val cpc = if (click == 0) 0D else income / click
|
|
|
- val f1 = RankExtractorFeature_20240530.divSmooth1(click, view, WILSON_ZSCORE)
|
|
|
- val f2 = RankExtractorFeature_20240530.divSmooth1(conver, view, WILSON_ZSCORE)
|
|
|
- val f3 = RankExtractorFeature_20240530.divSmooth1(conver, click, WILSON_ZSCORE)
|
|
|
+ val f1 = RankExtractorFeature_20240530.divSmooth2(click, view, CTR_SMOOTH_BETA_FACTOR)
|
|
|
+ val f2 = RankExtractorFeature_20240530.divSmooth2(conver, view, CTCVR_SMOOTH_BETA_FACTOR)
|
|
|
+ val f3 = RankExtractorFeature_20240530.divSmooth2(conver, click, CVR_SMOOTH_BETA_FACTOR)
|
|
|
val f4 = conver
|
|
|
- val f5 = RankExtractorFeature_20240530.divSmooth1(click, view, WILSON_ZSCORE) * cpc * 1000
|
|
|
+ val f5 = RankExtractorFeature_20240530.divSmooth2(click, view, CTR_SMOOTH_BETA_FACTOR) * cpc * 1000
|
|
|
featureMap.put(prefix1 + "_" + prefix2 + "_" + "ctr", f1)
|
|
|
featureMap.put(prefix1 + "_" + prefix2 + "_" + "ctcvr", f2)
|
|
|
featureMap.put(prefix1 + "_" + prefix2 + "_" + "cvr", f3)
|
|
@@ -164,11 +168,11 @@ object makedata_ad_31_originData_20250110 {
|
|
|
val conver = if (bn.isEmpty) 0D else bn.getIntValue("ad_conversion_" + prefix2).toDouble
|
|
|
val income = if (bn.isEmpty) 0D else bn.getIntValue("ad_income_" + prefix2).toDouble
|
|
|
val cpc = if (click == 0) 0D else income / click
|
|
|
- val f1 = RankExtractorFeature_20240530.divSmooth1(click, view, WILSON_ZSCORE)
|
|
|
- val f2 = RankExtractorFeature_20240530.divSmooth1(conver, view, WILSON_ZSCORE)
|
|
|
- val f3 = RankExtractorFeature_20240530.divSmooth1(conver, click, WILSON_ZSCORE)
|
|
|
+ val f1 = RankExtractorFeature_20240530.divSmooth2(click, view, CTR_SMOOTH_BETA_FACTOR)
|
|
|
+ val f2 = RankExtractorFeature_20240530.divSmooth2(conver, view, CTCVR_SMOOTH_BETA_FACTOR)
|
|
|
+ val f3 = RankExtractorFeature_20240530.divSmooth2(conver, click, CVR_SMOOTH_BETA_FACTOR)
|
|
|
val f4 = conver
|
|
|
- val f5 = RankExtractorFeature_20240530.divSmooth1(click, view, WILSON_ZSCORE) * cpc * 1000
|
|
|
+ val f5 = RankExtractorFeature_20240530.divSmooth2(click, view, CTR_SMOOTH_BETA_FACTOR) * cpc * 1000
|
|
|
featureMap.put(prefix1 + "_" + prefix2 + "_" + "ctr", f1)
|
|
|
featureMap.put(prefix1 + "_" + prefix2 + "_" + "ctcvr", f2)
|
|
|
featureMap.put(prefix1 + "_" + prefix2 + "_" + "cvr", f3)
|
|
@@ -303,11 +307,11 @@ object makedata_ad_31_originData_20250110 {
|
|
|
val conver = if (!d1.containsKey("ad_conversion_" + prefix)) 0D else d1.getIntValue("ad_conversion_" + prefix).toDouble
|
|
|
val income = if (!d1.containsKey("ad_income_" + prefix)) 0D else d1.getIntValue("ad_income_" + prefix).toDouble
|
|
|
val cpc = if (click == 0) 0D else income / click
|
|
|
- val f1 = RankExtractorFeature_20240530.divSmooth1(click, view, WILSON_ZSCORE)
|
|
|
- val f2 = RankExtractorFeature_20240530.divSmooth1(conver, view, WILSON_ZSCORE)
|
|
|
- val f3 = RankExtractorFeature_20240530.divSmooth1(conver, click, WILSON_ZSCORE)
|
|
|
+ val f1 = RankExtractorFeature_20240530.divSmooth2(click, view, CTR_SMOOTH_BETA_FACTOR)
|
|
|
+ val f2 = RankExtractorFeature_20240530.divSmooth2(conver, view, CTCVR_SMOOTH_BETA_FACTOR)
|
|
|
+ val f3 = RankExtractorFeature_20240530.divSmooth2(conver, click, CVR_SMOOTH_BETA_FACTOR)
|
|
|
val f4 = conver
|
|
|
- val f5 = RankExtractorFeature_20240530.divSmooth1(click, view, WILSON_ZSCORE) * cpc * 1000
|
|
|
+ val f5 = RankExtractorFeature_20240530.divSmooth2(click, view, CTR_SMOOTH_BETA_FACTOR) * cpc * 1000
|
|
|
featureMap.put("d1_feature" + "_" + prefix + "_" + "ctr", f1)
|
|
|
featureMap.put("d1_feature" + "_" + prefix + "_" + "ctcvr", f2)
|
|
|
featureMap.put("d1_feature" + "_" + prefix + "_" + "cvr", f3)
|