难点:
- 缺失数据几乎全部是整块丢失.
预测的时候几乎除了时间,不能从中得到有价值的特征
- 每块数据缺失的长度不一致.
缺少数据如果只是缺少一行,和一下缺少1000行,这样的预测难道肯定是不一样的,得到的结果也会差别很大
- 需要预测的有68个特征
每个特征有不同的分布趋势,这样每个列肯定是不同的模型和参数,如果人为的逐一去搜索,工作量可想而知.
- 如何构建和在线一致的本地测试集
每个缺失块大小不一,每个列缺失的数据多少不一,如果使用随机Split很难模拟到接近的分布.
AI项目体验地址 https://loveai.tech
求解思路:
- 难点1:
大量特征即使跨风机也具有很强相关性, 通过关联不同文件的数据构造特征, 下图就是挑选的有代表性的多列
- 难点2:
在模型中设置动态参数,根据缺失数据块的大小来分别构造Train数据,具体参数可以参考下面的模型设计
- 难点3:
在模型的设计中,把常见的回归,树模型都作为一个嵌套模型,通过参数控制.自动的寻找最优参数(模型)
- 难点4:
- 建立缺失数据字典,对每一个连续的数据块和缺失块,存储起始地址.
- 在缺失块对应的数据块,前后都可以找到和缺失块一样大小的块来模拟缺失块,这样隐含参数也基本一致.
方案细节
下面3个模型的训练方法基本一致,就是内部嵌入各种模型,通过参数共享来避免过拟合. 3个模型的区别在于,最优参数的选择方法不一致.
- 模型1:
模型2:
模型3:
模型的优缺点:
继续改进的空间:
- 好几个参数没有展开搜索
- 只使用了线性回归
- 只使用了相关性来做特征选择
- 对大缺失块增加更多资源来训练,增加搜索空间