task |
进度 |
完成日期 |
备注 |
数据预处理 |
100% |
2019.5.9 |
|
数据清洗 |
100% |
2019.5.9 |
|
数据集制作 |
100% |
2019.5.16 |
|
模型训练 |
|
|
|
强烈建议: 为了代码的可移植性,请使用相对路径
而不是绝对路径
- 去掉存在缺失值/创建时间为0的记录或者创建时间无效记录,如
2019/2/29
之类的
- 多值处理(商品id,广告行业id存在多值, 需要清理)不存在该种异常值
- 将日期转化为
datetime
类型
- 删除创建时间缺失的广告(这部分应该放在最后,这里提前处理会有问题)
- 输出
ad_static.csv
- 去掉存在空值的记录
- imps_out广告id必须在
ad_stastic_feature
中存在,否则异常,通过 inner
合并来解决
- 去掉日期异常的记录
- 去掉重复的记录
- 去掉数据类型不符合的数据
- 如果广告操作数据的修改时间为0,则其为广告的创建时间,赋值操作
- 输出
ad_statics_operation.csv
广告请求时间
转化为 datetime
- 去掉存在空值的记录, 去掉日期异常的记录
- 新建
广告请求时间_date
列, 用于按时间分类 如 2019-2-18
- 去掉
ad_stastic_feature
中不存在的广告,inner
合并
- 由于是追加的方式保存文件,所以先判断工作环境的安全
- 逐行保存文件到对应日期的文件中
- 因为只提取想要的数据,所以 生成一个
log_reduced.csv
保存精简信息
- 输出 2019-2-18_log.csv 等文件 32 个
- 重新读入文件 加 header 和 去掉重复操作的记录, 保存为 同名文件
log.groupby(by=['曝光广告id']).count()
统计曝光量并保存
- 根据
操作类型
将 ad_statics_operation
分割为新建和修改两部分
- 空值使用 -999 填充
- 分别操作新建和修改两部分数据
- 将新建和修改数据按照
广告id
进行排序并统计每个广告的操作次数保存备用
- 创建操作是在同一个广告id上不断叠加的结果 28685条
- 增加定向人群相关特征
- 将创建时间更改为最后的修改时间
- 修改操作是继承上一条特征的基础上修改字段,同样使用统计**简化,保留原始长度
- 删除失效状态广告
- 人群定向特征分解
- -9 表示特征取值不限, -999表示特征缺失
- 新增特征
has_product_id
表示是否有产品id,代表不同的广告类型
- 新增特征
is_all_field
表示人群定向特征是否是全部
- 新增日期相关特征
- 数据类型转换
- 删除3月19日创建的广告,因为没有标签
- 训练集打标签: 2月16号以前创建的广告,认为是静态广告,设置不变,不参与竞价,从2月16号到3月19号每天都有标签,2月16号之后创建的数据认为是动态广告,只有后一天才存在标签(可能有问题)
- 解决方案
- 时间列 排序
- 统计每种时间的个数
- 按索引取出对应的时间子表
- 读取标签并 merge
- 人群定向特征分解
- 添加时间特征
- 统一特征、数据类型、数值表示
- 重排特征顺序
- 连续特征做对数变换
- 预测结果取指数变换
- 结果生成与提交
tree .
.
├── data
│ ├── 2019-02-16_log.csv
│ ├── 2019-02-16_log_exposed.csv
│ ├── 2019-02-17_log.csv
│ ├── 2019-02-17_log_exposed.csv
│ ├── 2019-02-18_log.csv
│ ├── 2019-02-18_log_exposed.csv
│ ├── 2019-02-19_log.csv
│ ├── 2019-02-19_log_exposed.csv
│ ├── 2019-02-20_log.csv
│ ├── 2019-02-20_log_exposed.csv
│ ├── 2019-02-21_log.csv
│ ├── 2019-02-21_log_exposed.csv
│ ├── 2019-02-22_log.csv
│ ├── 2019-02-22_log_exposed.csv
│ ├── 2019-02-23_log.csv
│ ├── 2019-02-23_log_exposed.csv
│ ├── 2019-02-24_log.csv
│ ├── 2019-02-24_log_exposed.csv
│ ├── 2019-02-25_log.csv
│ ├── 2019-02-25_log_exposed.csv
│ ├── 2019-02-26_log.csv
│ ├── 2019-02-26_log_exposed.csv
│ ├── 2019-02-27_log.csv
│ ├── 2019-02-27_log_exposed.csv
│ ├── 2019-02-28_log.csv
│ ├── 2019-02-28_log_exposed.csv
│ ├── 2019-03-01_log.csv
│ ├── 2019-03-01_log_exposed.csv
│ ├── 2019-03-02_log.csv
│ ├── 2019-03-02_log_exposed.csv
│ ├── 2019-03-03_log.csv
│ ├── 2019-03-03_log_exposed.csv
│ ├── 2019-03-04_log.csv
│ ├── 2019-03-04_log_exposed.csv
│ ├── 2019-03-05_log.csv
│ ├── 2019-03-05_log_exposed.csv
│ ├── 2019-03-06_log.csv
│ ├── 2019-03-06_log_exposed.csv
│ ├── 2019-03-07_log.csv
│ ├── 2019-03-07_log_exposed.csv
│ ├── 2019-03-08_log.csv
│ ├── 2019-03-08_log_exposed.csv
│ ├── 2019-03-09_log.csv
│ ├── 2019-03-09_log_exposed.csv
│ ├── 2019-03-10_log.csv
│ ├── 2019-03-10_log_exposed.csv
│ ├── 2019-03-11_log.csv
│ ├── 2019-03-11_log_exposed.csv
│ ├── 2019-03-12_log.csv
│ ├── 2019-03-12_log_exposed.csv
│ ├── 2019-03-13_log.csv
│ ├── 2019-03-13_log_exposed.csv
│ ├── 2019-03-14_log.csv
│ ├── 2019-03-14_log_exposed.csv
│ ├── 2019-03-15_log.csv
│ ├── 2019-03-15_log_exposed.csv
│ ├── 2019-03-16_log.csv
│ ├── 2019-03-16_log_exposed.csv
│ ├── 2019-03-17_log.csv
│ ├── 2019-03-17_log_exposed.csv
│ ├── 2019-03-18_log.csv
│ ├── 2019-03-18_log_exposed.csv
│ ├── 2019-03-19_log.csv
│ ├── 2019-03-19_log_exposed.csv
│ ├── ads_crt.csv
│ ├── ads_fix1.csv
│ ├── ads_fix2.csv
│ ├── ads_fix.csv
│ ├── ad_static_all.csv
│ ├── ad_static.csv
│ ├── ad_static_operation.csv
│ ├── log_data.tgz
│ ├── log_label.tgz
│ ├── log_reduced.csv
│ ├── sta_log.csv.sh
│ ├── submission.csv
│ ├── test_data.csv
│ ├── test_set.csv
│ ├── test_set_final.csv
│ ├── train_set.csv
│ ├── train_set_final.csv
│ └── users_data.csv
├── info_FAQ.md
├── main.py
├── models
│ ├── adabound.py
│ ├── adamw.py
│ ├── clr_callback.py
│ ├── __init__.py
│ ├── layers.py
│ ├── loss.py
│ ├── metrics.py
│ ├── network.py
│ └── utils.py
├── nbs
│ ├── add_timestamp.ipynb
│ ├── ad_operation_clean.ipynb
│ ├── data_clean.ipynb
│ ├── label_construct.ipynb
│ ├── log_clean.ipynb
│ ├── log_clean.py
│ ├── log_duplicate_rm.py
│ ├── log_reduced.py
│ ├── operation_to_ad.ipynb
│ ├── post_pre.ipynb
│ ├── pro_data.ipynb
│ ├── __pycache__
│ │ └── utils.cpython-36.pyc
│ ├── README.md
│ ├── sta_exposed.py
│ ├── submit.ipynb
│ ├── test_features.ipynb
│ ├── train_ads_features_crt.ipynb
│ ├── train_ads_features-fix.ipynb
│ ├── train_test_set.ipynb
│ └── utils.py
├── README.md
├── requirements.txt
├── test_A -> /home/lab/Datasets/Tencent/test_A/
└── TrainingModel.ipynb
7 directories, 121 files
name |
细节 |
备注 |
modin |
加速表格文件读取 |
256x |
yapf |
格式化文件 |
yapf -i -r . |
fastai |
模型快速构建与训练 |
|
- 解决数据问题