深度学习代码部分(1): 用线性回归+adagrad预测PM2.5的值

本文介绍了使用深度学习中的线性回归结合Adagrad优化算法预测PM2.5浓度的过程。首先,对数据进行处理,包括特征提取、正则化、训练集验证集划分。接着,通过梯度下降进行训练,并讨论了模型优化方法,如调整学习率、增加迭代次数、使用正则项和改进的优化算法。最后,提供了完整代码和进一步优化模型的建议。
摘要由CSDN通过智能技术生成

预测PM 2.5

1、数据处理

每一天有24小时,每一天对应的特征有18个,每个月取前20天作为训练集数据,根据要求,每九个小时形成一个data,一个月有2024=480 hours,所以一共可以取到471个data,故x_train的行数为样本个数,即47112个,列数为18个特征9 hours。
target值取每九个小时的第十个小时,所以target的矩阵应为(471
12,1)

将每个月20天每小时的数据作为每一列,行为特征数量。

month_data={}
for month in range(12):
    sample=np.empty([18,480])
    for day in range(20):
        sample[:,day*24:(day+1)*24]=raw_data[18*(20*month+day):18*(20*month+day+1),:]
    month_data[month]=sample
  • 建立一个字典
  • 遍历12个月
  • 建立一个空的数组,行为18个特征,列为20 days * 24 hours
  • 遍历每一天,对于第一天的遍历,sample中的所有行,以及前24列数据,为原始数据中,第一个月第一天,即原始数据中的第一行至第十八行(十八个特征)的所有24小时的数据。放入sample
  • 遍历20 天, 至此,20天每一个小时对应的特征都在每一列上。
  • 遍历20天结束,将该array放入字典作为value,key为月份

每九个小时形成一个data,data有189列,有24(480-9)行

x=np.empty([12*471,18*9],dtype=float)
y=np.empty([12*471,1],dtype=float)
for month in range(12):
    for day in range(20):
        for hour in range(24):
            if day==19 and hour>14:
                continue
            #对于每个sample的month里,每九个小时一取,取18行所有的feature
            x[month*471+day*24+hour,:]=month_data[month][:,day*24+hour:day*24+hour+9].reshape(1,-1)
            #取每个sample的month
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值