Datawhale夏令营——机器学习小白笔记

本次Datawhale夏令营我选择了机器学习版块,赛题是经典的时间序列问题——即训练时序预测模型来实现对房屋电力的消耗预测。在这篇笔记中,我将主要记录自己在这段时间里学习、建模中遇到的1问题和使用的解决办法。

一、pandas库
以往我在读取csv文件时,往往会采取numpy.loadtxt来实现,通过skiprows跳过指定行(常为表头),然后形成所需要的数组并进行相应的数组类型的操作。
但这次采用的pandas.read_csv,经过查阅其用法,我才知道用此方法会将数据转化为DataFrame(数据帧)对象,如果需要直接转化成只含有数据的数组需要添加header=None。

二、特征优化
本次学习中我了解到了特征工程的重要性。最主要的就是历史平移特征和窗口统计特征。
历史平移特征主要用于获取前阶段的信息,而窗口统计特征则主要用于构建不同窗口大小,并获取相应窗口的均值、最值、方差等信息来反映最近阶段数据的变化情况。
特征工程有利于将原始数据转化为更好代表预测模型的潜在问题。,从而提高对未知数据的模型准确性,对机器学习的预测有关键作用。
在这次建模中,我在特征工程这一环节就做的不够好,导致我的预测结果基本都不太好。所以接下来对模型的优化方案重点要从特征工程着手。
下面复制一段Task3链接中的一段有关窗口统计的代码。代码中分别以15/20/50/70作为窗口大小,并每次移动3个步长,并计算了每个窗口的均值、最值、标准差。

for win in [15, 30, 50, 70]:
    train[f'target_win{win}_mean'] = train.groupby('id')['target'].rolling(window=win, min_periods=3,
                                                                           closed='left').mean().values
    train[f'target_win{win}_max'] = train.groupby('id')['target'].rolling(window=win, min_periods=3,
                                                                          closed='left').max().values
    train[f'target_win{win}_min'] = train.groupby('id')['target'].rolling(window=win, min_periods=3,
                                                                          closed='left').min().values
    train[f'target_win{win}_std'] = train.groupby('id')['target'].rolling(window=win, min_periods=3,
                                                                          closed='left').std().values

#

三、train、val与test
先前我了解到深度学习模型中数据往往要分为train、val、test三个部分,在这次学习中我对这个分段有了新的认识。
根据本次赛题需求,是需要对test中各id未来十天的耗电量做预测,test无target值。起初我看赛题的数据文件中只有train和test,以为是自己下载有误,后来才了解到训练集和验证集均来自于train文件。
根据我的理解,train文件中的大部分数据用于训练模型,小部分用于验证模型的效果,验证集的数据经过预测模型得到的预测值与实际值通过损失函数后得到loss值,并将其进行反向传播从而优化模型本身(有点像高中生物中的反馈调节)。

以上就是本期夏令营之中我的机器学习笔记内容。这次学习和实践活动我还有许多不足,执行力不够、时间管理不科学、轻视了对理论的学习等等。结果不够理想,希望再接再厉。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值