ML/DL作业1——pm2.5预测

任务描述
在这里插入图片描述
数据描述在这里插入图片描述
首先先下载学习资料观察训练集的数据
在这里插入图片描述
作业说明
(1)数据集包含台湾丰原的240天的天气观测数据(包括每个月前20天的可见数据用于训练和后10天的数据用于测试,为防止作弊后十天不可见)
(2)天气数据包含PM2.5、PM10、NO等浓度和降雨等18条数据
(3)每天监测24次数据,每隔一小时监测一次。
解题思路分析
  数据预处理
  首先根据题目要求根据前九天的pm2.5预测第十天的pm2.5,这样我们可以把数据分割成(18,9)既18个参数(PM2.5、PM10、NO浓度等18个考虑指标)提取0到8时的数据项作为训练数据,9时的pm2.5作为该数据项对应的函数结果数据label。
在这里插入图片描述
  为了获得更多的训练数据我们可以将上图红色方框依次向右移动一个格子。绿色方框同理。这样我们一共可以获得240*15=3600个数据帧和以此对应的3600个label用来学习。观察上图数据可知RAINFALL(降雨量)这行数据时常为NR(既为0没有下雨),我们需要将NR替换成浮点数机器才可以处理数据。用replace([‘NR’], [0.0])这行代码将NR替换成0.0。replace函数的用法
  根据上述所说我们现在对数据进行分割,分割成3600个数据帧和对应的3600个label。

   for i in range(0, 4320, 18):
        for j in range(15):
            mat = array[i:i+18, j:j+9]
            label = array[i+9, j+9]
            x_list.append(mat)
            y_list.append(label)
    x = np.array(x_list)
    y = np.array(y_list)

  回归建立模型
  一共收集了18项可能影响pm2.5的数据但我们也不知道什么影响pm2.5于是只用pm2.5这项数据建立简单的线性模型。
在这里插入图片描述
  损失函数
  用课上讲的用差值平方和来衡量预测准确程度这里用平方和的方式(平均欧式距离)来衡量预测的准确程度乘1/2是后续求微分方便月掉。
在这里插入图片描述
  为了防止过拟合L2正则化加入正则项
在这里插入图片描述
  梯度更新
在这里插入图片描述

  更新学习率
  几种优化算法:深度学习优化算法总(SGD,AdaGrad,Adam等)这里采用adagrad算法
在这里插入图片描述

def train(x_train, y_train, epoch):
    bias = 0 # 偏置值初始化
    weights = np.ones(9) # 权重初始化。ones()函数的作用在这里就是生成一个数组数组里有九个1
    learning_rate = 1 # 初始学习率
 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值