李宏毅机器学习HW1——PM2.5 Regression

思路主要参考:https://www.cnblogs.com/HL-space/p/10676637.html

一、作业描述

数据集描述:

  1. 取12个月每个月前20天共240天的气象数据
  2. 每天的数据有18个指标

二、思路分析

2.1 数据预处理

利用pd.read_csv 读取标题行之外的数据

数据中共有很多NR数据,该指标RAINFALL 为是否降雨,将NR替换为0
在这里插入图片描述
如图所示,取每天从0时开始到8时的所有数据为训练数据,第9个小时的PM2.5值为label,以此类推,则每天共有15个label,240天共有240X15 = 3600个label

#数据预处理,取出每天24h的数据
def dataProcessing(df): 
    df = df.iloc[:,3:].replace(['NR'],[0.0]) #将空数据替换为0    
    array = np.array(df).astype(float) # astype转换array中的元素类型
    x_list = []
    y_list = []
    for i in range(0,4320,18):
        for j in range(0,15):
            mat = array[i:i+18,j:j+9]  #每一天中每10个小时的前9个小时当作参数
            label = array[i+9,j+9] #第10列是pm2.5的值,第10个小时的pm2.5作为label
            x_list.append(mat)   #插入参数和label列表
            y_list.append(label)
    x = np.array(x_list)
    y = np.array(y_list)
    return x, y

2.2 模型建立

2.2.1 回归模型

简单起见,仅利用线性函数考虑前9个小时的PM2.5的对第10小时PM2.5的影响
在这里插入图片描述
其中
第i小时的PM2.5数据为第i小时的PM2.5数据,在这里插入图片描述为其对应的权重值, 在这里插入图片描述为偏移量, 在这里插入图片描述为第10小时的预测值

2.2.2 损失函数

利用预测值和每个label的平均欧氏距离来衡量损失
在这里插入图片描述
其中,在这里插入图片描述为label的值,在这里插入图片描述为函数的预测值,在这里插入图片描述为label的数量,在这里插入图片描述为label的损失

未加入正则项

2.2.3 梯度下降

要想使loss最小,则需要求loss在b和w上的偏微分
在这里插入图片描述
在这里插入图片描述
更新参数
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述为w更新时的学习率,在这里插入图片描述为b更新时的学习率

2.2.4 更新学习率
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值