20_vid_avg_score.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. restore_score() {
  15. for(( i = 0; i < ${#vids[@]}; i++)) do
  16. vid=${vids[i]}
  17. score_avg=$(awk '{
  18. score = $2
  19. new_score = ( 0.1 * score ) / ( 1 - 0.9 * score)
  20. sum += new_score
  21. count++
  22. } END {
  23. if ( count > 0 ){
  24. print sum / count
  25. } else {
  26. print "NaN"
  27. }
  28. }' ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt)
  29. echo -e "VID: ${vid} 平均分计算结果: ${score_avg} \n\t数据路径: ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt"
  30. done
  31. }
  32. main() {
  33. for(( i = 0; i < ${#vids[@]}; i++)) do
  34. vid=${vids[i]}
  35. cat ${TXT_PATH}/${predict_date}.txt | \
  36. awk -v vid="$vid" -F'\t' '{
  37. if ($2 == vid) {
  38. split($0, fields, "\t");
  39. OFS="\t";
  40. line="";
  41. for (i=1; i<= length(fields); i++){
  42. if (i != 2) {
  43. line = (line ? line "\t" : "") fields[i];
  44. }
  45. }
  46. print line
  47. }
  48. }' | \
  49. ${FM_PREDICT} -m ${MODEL_PATH}/${model_name}.txt -dim ${predict_dim} -core 8 -out ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt
  50. score_avg=`awk '{ sum += $2; count++ } END { if (count > 0) print sum / count }' ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt`
  51. echo -e "VID: ${vid} 平均分计算结果: ${score_avg} \n\t模型路径: ${MODEL_PATH}/${model_name}.txt \n\t评估数据路径: ${TXT_PATH}/${predict_date}.txt"
  52. done
  53. }
  54. main
  55. # 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 &