AutoIterNSHSanhuanPluginDetector项目:
- 模型训练
- 外挂预测
1. 项目结构
1.1 Data模块
1.1.1 数据保存
Data Type |
Update Frequency |
Data Source Range |
预测数据 |
每天 |
前一天数据 |
训练数据 |
每周五 |
37天前的周三开始,四周的数据采样 |
1.2 Training模块
1.2.1 迭代方案
Type |
Update Frequency |
Data Source Range |
Sliding Window |
每周五 |
初始与baseline相同,之后每次更新替换新一周的数据,即始终只包含4周的数据 |
1.2.2 甘特图
1.2.3 模型保存
-
模型目录命名规则:MODEL_DIR=
${ds_start}_${ds_range}
Type |
Example |
Sliding Window |
20181219_28 , 20181226_28 , 20190102_28
|
1.3 Prediction模块
1.3.1 预测方案
Step |
Operation |
Description |
1 |
样本获取 |
每天,获取前一天全天数据样本,保存至对应目录 |
2 |
模型预测 |
样本获取完毕后,馈入模型预测结果 |
3 |
关联画像 |
预测结果上传Hive ,并关联画像表 |
4 |
结果上传 |
画像结果保存至MySQL
|
1.3.2 结果呈现
2. 启动脚本
2.1 Crontab定时任务
50 15 * * 5 bash /home/zhoujialiang/nsh_sanhuan_sl_auto/train.sh >/home/zhoujialiang/cron_sanhuangua_train.log 2>&1
20 20 * * * bash /home/zhoujialiang/nsh_sanhuan_sl_auto/predict_daily.sh >/home/zhoujialiang/cron_sanhuangua_predict.log 2>&1
2.2 Shell模块任务
WORK_DIR=/home/zhoujialiang/nsh_sanhuan_sl_auto
last_wednesday=`date -d "wednesday -2 weeks" +%Y%m%d`
ds_start_old=`date -d "$last_wednesday -35 days" +%Y%m%d`
ds_start=`date -d "$last_wednesday -28 days" +%Y%m%d`
ds_start_new=`date -d "$last_wednesday -7 days" +%Y%m%d`
echo /usr/bin/python3 $WORK_DIR/update_data.py pos --old_dir ${ds_start_old}_28 --ds_start $ds_start --ds_num 28 &&
/usr/bin/python3 $WORK_DIR/update_data.py pos --old_dir ${ds_start_old}_28 --ds_start $ds_start --ds_num 28 &&
echo /usr/bin/python3 $WORK_DIR/update_data.py neg --old_dir ${ds_start_old}_28 --ds_start $ds_start --ds_num 28 &&
/usr/bin/python3 $WORK_DIR/update_data.py neg --old_dir ${ds_start_old}_28 --ds_start $ds_start --ds_num 28 &&
echo /usr/bin/python3 $WORK_DIR/get_ids.py pos --ds_start $ds_start_new --ds_num 7 &&
/usr/bin/python3 $WORK_DIR/get_ids.py pos --ds_start $ds_start_new --ds_num 7 &&
echo /usr/bin/python3 $WORK_DIR/get_ids.py neg --ds_start $ds_start_new --ds_num 7 &&
/usr/bin/python3 $WORK_DIR/get_ids.py neg --ds_start $ds_start_new --ds_num 7
echo /usr/bin/python3 $WORK_DIR/dataloader.py --ds_start $ds_start_new --ds_num 7 --mode neg &&
/usr/bin/python3 $WORK_DIR/dataloader.py --ds_start $ds_start_new --ds_num 7 --mode neg &&
echo /usr/bin/python3 $WORK_DIR/dataloader.py --ds_start $ds_start_new --ds_num 7 --mode pos &&
/usr/bin/python3 $WORK_DIR/dataloader.py --ds_start $ds_start_new --ds_num 7 --mode pos
echo /usr/bin/python3 $WORK_DIR/BLSTMModel.py --ds_start $ds_start --ds_num 28 &&
/usr/bin/python3 $WORK_DIR/BLSTMModel.py --ds_start $ds_start --ds_num 28
WORK_DIR=/home/zhoujialiang/nsh_sanhuan_sl_auto
ds_pred=`date -d "-4 days" +%Y%m%d`
last_friday=`date -d "friday -1 weeks" +%Y%m%d`
ds_start=`date -d "$last_friday -30 days" +%Y%m%d`
echo /usr/bin/python3 $WORK_DIR/get_ids.py total --ds_start $ds_pred --ds_num 1 &&
/usr/bin/python3 $WORK_DIR/get_ids.py total --ds_start $ds_pred --ds_num 1 &&
echo /usr/bin/python3 $WORK_DIR/dataloader.py --ds_start $ds_pred --ds_num 1 &&
/usr/bin/python3 $WORK_DIR/dataloader.py --ds_start $ds_pred --ds_num 1 &&
echo /usr/bin/python3 $WORK_DIR/blstm_predict.py $ds_pred --ds_start $ds_start --ds_num 28 &&
/usr/bin/python3 $WORK_DIR/blstm_predict.py $ds_pred --ds_start $ds_start --ds_num 28 &&
echo /usr/bin/python $WORK_DIR/nsh_antiplugin_sanhuan_ban.py $ds_pred blstm &&
/usr/bin/python $WORK_DIR/nsh_antiplugin_sanhuan_ban.py $ds_pred blstm
2.3 Python文件构成
2.3.1 文件分类
-
data
update_data.py
get_ids.py
dataloader.py
-
train
-
predict
2.3.2 流程图