ML AI

工业蒸汽量回归预测

阿里天池比赛持续记录

工业蒸汽量回归预测

我就不把notebook转码成md发到日志里了,代码见GitHub仓库天池实验室(天池实验室中的版本可能比较新)

当前个人最高线上成绩是MSE=0.1253,排名在199/3011,7%左右.

05-23

最近沉迷于刷天池,再加上要期末了,很长时间都没有更新日志了。直到今天收到了这个短信, p.jpg 我才想起来是该在日志里记一记天池比赛。幸福度那个比赛稍后我整理一下。今天相当于是init一个初始的记录工业蒸汽量回归预测比赛过程的日志。

当前最好成绩是0.1301,两个结果直接取mean获得的。这两个结果分别是:

  1. 使用未加修改的数据,15折交叉验证,用XGBoost来stack[XGBoost,LGBM,CATBoost,GradientBoost]四个模型。线上MSE是0.1368
  2. 与1中相同的融合模型,但数据是全部特征训练测试集联合求rank,再分50袋的调整数据。线上 MSE也是0.1368左右(记不清了)

现象

  1. 暴力遍历来产生特征组合(即使检验了特定模型下的MSE Gain)对Boost系列的模型会有害
  2. 特征工程的时候,无脑按value分袋有害
  3. 两个MSE接近的结果直接求均值就能提高成绩(想象一个38维空间里的三角形就能解释清楚),反而两个模型拿来stack会降低成绩
  4. 尝试使用线性模型来stack,效果不好,应该是欠拟合
  5. 尝试直接使用线性模型参与stack,在训练集交叉验证时结果与Boost系列模型相关度高(0.98),而在测试集下相关度明显下降(0.54)
  6. 对全部特征训练测试集联合归一化,对Boost系列的模型毫无影响

问题

  1. stack 模型的选取
  2. 针对线性模型的特征工程方式

思路

  1. 在原数据中增加联合rank的特征
  2. 特征工程,以训练有效的线性模型

05-24

提交记录

  1. 尝试使用lasso暴力选择特征,在mini数据集上训练导致过拟合,线上mse到了0.17
  2. 尝试将rank和原数据连接,线上mse到了0.1408(submit:together.txt),但很惊喜的一点是这个结果与ori_test的mse比较大,有0.02.

思路

  1. together.txt与ori_test.txt直接取mean

05-25

提交记录

  1. 终于突破了0.13:together.txt与ori_test.txt直接取mean的得分和平面三角中线模型吻合:0.1298(submit:together-ori.txt)
  2. 老老实实调参,做stacking,果然依靠“人工”的操作会得到更好的优化效果:0.1253(submit:lr.txt)
本文总字数: 1049