李宏毅机器学习hw1 Boss baseline(2022)

题目介绍

是一个DNN二分类问题,给定前4天的信息,预测第五天这个人有没有阳

2022ML网站ML 2022 Spring (ntu.edu.tw)

老师给的基线代码:https://colab.research.google.com/drive/1FTcG6CE-HILnvFztEFKdauMlPKfQvm5Z#scrollTo=YdttVRkAfu2t

kaggle提交: ML2022Spring-hw1 | Kaggle

公榜baseline:

bossline 私榜0.88509,公榜0.85800

以上可能需要科学上网


题目解答

simple baseline

拿到代码跑一遍可以获得1.6145的基线

medium baseline

在此基础上改小batchsize可以轻松达到medium baseline。

这其中的道理目前猜测是小的batchsize训练过程中引入了一定的噪音所以获得了更好的泛化表现(不过可能也是强行解释,如果有懂得人可以评论说一说哈)

关于模型结构并没有动很多,只是把relu改为了leakyrelu。简单尝试了一下增加模型复杂度,效果并不好,我觉得现有的数据规模不大,并且数据之间的关联性可能没有那么强,所以用一个简单的模型效果可能就已经不错了。如果要动模型结构的话应该是同时加复杂度和正则的方向继续改进,可能会有提升,不过因为已经到了bossline就没接着做了。

strong baseline

关于达到strong baseline,这步需要特征筛选。理论上神经网络应该也能自己筛选特征,但是可能是不够深,数据不够多,简单的DNN配上简单的数据是有极限的。所以只好帮他筛选筛选。

我的方法是拿线性回归单模输出输入的权重绝对值,删除小的。反正后续还能用他来ensemble。省事。

特征数量对模型表现影响还是比较大的,需要稍微精细一点

筛选完特征之后,DNN单模能够达到私榜0.933+公榜0.890分数,成功越过strong baseline。而且还超过了一些。

boss baseline

DNN单模距离bossbase还有一小段距离,直接用线性回归+DNN单模做一个平均权重的ensemble,就超过了boss baseline。

过程记录
修改私榜公榜备注
baseline1.6145
加线性层1.5947
线性层+batchsize10242.0333
线性层+batchsize1281.2539
线性层+batchsize641.23344
线性层+batchsize64+l2正则1.15726
线性层+batchsize64+l2正则+训练7k轮1.46195
sklearn单模尝试
线性回归单模1.01366
决策树回归6.69577
单模线性回归(保留了42个特征)0.912160.89979
ensemble模型结果
dnn特征数量52+batchsize64+正则+ensemble线性单模0.921290.96981
dnn特征数量62+batchsize64+正则+ensemble线性单模0.877750.84749

单模lr 0.921+0.909

单模dnn 0.933+0.890

 DNN模型结构
class My_Model(nn.Module):
    def __init__(self, input_dim):
        super(My_Model, self).__init__()
        # TODO: modify model's structure, be aware of dimensions.
        self.layers = nn.Sequential(
            nn.Linear(input_dim, 16),
            nn.LeakyReLU(0.05),
            nn.Linear(16, 8),
            nn.LeakyReLU(0.05),
            nn.Linear(8, 1)
        )

可能的改进方向

目前看的话,DNN模型可以加复杂度和正则尝试一下,另外不同的梯度优化方法我并没有尝试,学习率没有尝试。

预处理现在是前5天预测1天的信息,可以预处理为前1天预测后一天的信息,训练出来再ensemble

代码开源

百度网盘:链接:百度网盘 请输入提取码 提取码:ncm3

​Github:____

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值