Browse Source

feat:修改定时任务脚本

zhaohaipeng 10 months ago
parent
commit
5fe801ca99
1 changed files with 15 additions and 4 deletions
  1. 15 4
      ad/01_ad_model_update_everyday.sh

+ 15 - 4
ad/01_ad_model_update_everyday.sh

@@ -96,7 +96,7 @@ fi
 $HADOOP fs -text ${bucketFeatureSavePath}/${today}/* | ${FM_HOME}/bin/fm_predict -m ${LAST_MODEL_HOME}/model_online.txt -dim 8 -core 8 -out ${PREDICT_PATH}/${model_name}_${today}_online.txt
 $HADOOP fs -text ${bucketFeatureSavePath}/${today}/* | ${FM_HOME}/bin/fm_predict -m ${MODEL_PATH}/${model_name}_${today_early_1}.txt -dim 8 -core 8 -out ${PREDICT_PATH}/${model_name}_${today}_new.txt
 
-# shellcheck disable=SC2006
+# 5.1 计算线上模型的AUC
 online_auc=`cat ${PREDICT_PATH}/${model_name}_${today}_online.txt | /root/sunmingze/AUC/AUC`
 if [ $? -ne 0 ]; then
    echo "线上模型AUC计算失败"
@@ -104,6 +104,7 @@ if [ $? -ne 0 ]; then
    exit 1
 fi
 
+# 5.2 计算新模型的AUC
 new_auc=`cat ${PREDICT_PATH}/${model_name}_${today}_new.txt | /root/sunmingze/AUC/AUC`
 if [ $? -ne 0 ]; then
    echo "新模型AUC计算失败"
@@ -111,12 +112,22 @@ if [ $? -ne 0 ]; then
    exit 1
 fi
 
-if [ "$online_auc" \< "$new_auc" ]; then
+# 5.3 计算新模型与线上模型的AUC差值
+auc_diff=$(echo "$online_auc - $new_auc" | bc -l)
+
+# 5.4 获取差值的绝对值
+auc_diff_abs=$(echo "sqrt(($auc_diff)^2)" | bc -l)
+
+# 5.5 如果差值的绝对值小于0.005且新模型的AUC大于0.73, 则更新模型
+if (( $(echo "${online_auc} <= ${new_auc}" | bc -l) )); then
     echo "新模型优于线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
     /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型优于线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
+elif (( $(echo "$auc_diff_abs < 0.005" | bc -l) )) && (( $(echo "$new_auc >= 0.73" | bc -l) )); then
+    echo "新模型与线上模型差值小于阈值0.005: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}, 差值为: $auc_diff_abs"
+    /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型与线上模型差值小于阈值0.005: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}, 差值为: $auc_diff_abs"
 else
-    echo "新模型不如线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
-    /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型不如线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
+    echo "新模型与线上模型差值大于等于阈值0.005: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}, 差值为: $auc_diff_abs"
+    /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型与线上模型差值大于等于阈值0.005: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}, 差值为: $auc_diff_abs"
     exit 1
 fi