20_vid_avg_score.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/sh
  2. # 计算不同VID的平均分
  3. set -x
  4. predict_date=$1
  5. model_name=$2
  6. predict_dim=$3
  7. PROJECT_HOME=/root/zhaohp/recommend-emr-dataprocess/
  8. MODEL_PATH=${PROJECT_HOME}/model/20240805/
  9. PREDICT_PATH=${PROJECT_HOME}/predict/recommend/
  10. TXT_PATH=/mnt/disk1/20240729
  11. HADOOP=/opt/apps/HADOOP-COMMON/hadoop-common-current/bin/hadoop
  12. FM_PREDICT=/root/sunmingze/alphaFM/bin/fm_predict
  13. vids=(22895200 22751457 14146727 22847440 22927926 22858609 22974689 22563167 22959023 22970515 22946931 22994781 20720060 22979110)
  14. main() {
  15. for(( i = 0; i < ${#vids[@]}; i++)) do
  16. vid=${vids[i]}
  17. cat ${TXT_PATH}/${predict_date}.txt | \
  18. awk -v vid="$vid" -F'\t' '{
  19. if ($2 == vid) {
  20. split($0, fields, "\t");
  21. OFS="\t";
  22. line="";
  23. for (i=1; i<= length(fields); i++){
  24. if (i != 2) {
  25. line = (line ? line "\t" : "") fields[i];
  26. }
  27. }
  28. print line
  29. }
  30. }' | \
  31. ${FM_PREDICT} -m ${MODEL_PATH}/${model_name}.txt -dim ${predict_dim} -core 8 -out ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt
  32. score_avg=`awk '{ sum += $2; count++ } END { if (count > 0) print sum / count }' ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt`
  33. echo -e "VID: ${vid} 平均分计算结果: ${score_avg} \n\t模型路径: ${MODEL_PATH}/${model_name}.txt \n\t评估数据路径: ${TXT_PATH}/${predict_date}.txt"
  34. done
  35. }
  36. main
  37. # nohup ./recommend/20_vid_avg_score.sh 20240729 model_recommend_v3_sample_01_20240728 8 > logs/20_vid_model_recommend_v3_20240728.sh 2>&1 &