1.对预测结果进行处理
- 可分别用K折交叉预测和全部数据分别做模型,然后按照一定权重(如8:2)对结果进行集成
- 多模型stacking(投票、平均、加权、输入下一层模型)
线上结果加权:通过每个模型的线上成绩进行加权,线上分数高的权重就高,线上成绩相对低的权重就低,最终将加权的结果作为最终的结果(需保证所有的结果的 权重之和为1).
2.特征处理
基本方法
- 以ID为主键进行聚合,min() max() mean() skew() std() sum()
- 以各特征列为基础进行聚合,然后以映射的形式和主表合并
data.groupby(col)['ID'].nunique()
data.groupby(col)['day'].min()
data.groupby(col)['day'].max()
Multivalue(多值特征)
sample1: 123,1245,124,012
- CounterVector,转为词频
- w2v转为向量
Time(时间特征)
对结果有较强影响的时间属性,具有趋势性,季节性以及周期性
- 基于时间的stacking
- 提取月、日、星期、小时
对结果无影响的时间属性
CAT(类别特征)
拥有相对大小的CAT特征,例如年龄段
没有相对大小的CAT特征,例如颜色等
- 将类别映射为出现的次数
dic = data[cat].value_counts().to_dict()
data[cat+'_count'] = data[cat].apply(lambda x:dic[x])
NUM(数值特征)
相同物理意义的NUM特征,如不同月份的贷款,可相加减
- NUM1 + NUM2
- NUM1 * NUM2
- NUM1 / NUM2
- NUM1 - NUM2
- (NUM1 - NUM2) /NUM3
- (NUM1 + NUM2) /NUM3
- (NUM1 - NUM2) * NUM3
- (NUM1 + NUM2) * NUM3
不同物理意义的NUM特征,加减无意义