[机器学习-回归实例] 李宏毅机器学习作业一:PM2.5 预测实例

[机器学习-回归实例] 李宏毅机器学习作业一:PM2.5 预测实例

简介

  这是一个回归预测的实例,数据集来自李宏毅的《机器学习》课程的第一次作业,可以用来训练一个线性回归模型或者其他的回归模型,动手实践学习到的理论知识,在实践中去发现问题。这篇文章主要包括数据集的解释、数据的预处理过程及线性回归模型的代码实现这三个部分。由于这个数据集并不能直接使用,还需进行一些重构,为了对初学者更友好一些,我会提供重构完的可以读取后就直接使用的数据集,我也会提供 M a t l a b \rm Matlab Matlab 可直接使用的 . m a t \rm .mat .mat 文件供使用 M a t l a b \rm Matlab Matlab 的同学使用,不过还是希望同学们能够使用原始数据自己动手重构,重构的代码也会附在文中。

数据集解释

  这个数据集是一个城市 2014 2014 2014 年一整年的空气质量监测的实测数据,包含了 A M B _ T E M P 、 C H 4 \rm AMB\_TEMP、CH4 AMB_TEMPCH4 等十八种关于空气质量的参数,每个小时采集一次。在 t r a i n . c s v \rm train.csv train.csv 训练集数据集中包含了每个月前 20 20 20 天的每个小时采集的数据,一共有 12 × 20 × 24 12 \times20 \times24 12×20×24 个小时的监测数据。 下图截取了两天的前 10 10 10 个小时的原始数据的图,可以看到从第 4 4 4 列开始每一列是 1 1 1 个小时采集的数据,一共有 24 24 24 列。从第二行开始每 18 18 18 行是一天的 18 18 18 种监测数据。

  我们要做的任务回归预测任务就是依据前 9 9 9 个小时的 18 18 18 种监测的参数预测第 10 10 10 个小时的 P M 2.5 \rm PM2.5 PM2.5 的取值。

数据集重构

  直接用这个数据集显然是不容易进行训练的,因为属性值 X t r a i n \boldsymbol X_{train} Xtrain 和标签 y t r a i n \boldsymbol y_{train} ytrain 并没有分开,而且在 X t r a i n \boldsymbol X_{train} Xtrain 中应该每一行是一条数据,所以我们数据重构的任务就是从这个原始的数据集 t r a i n . c s v \rm train.csv train.csv 来构建我们方便使用的 X t r a i n \boldsymbol X_{train} Xtrain y t r a i n \boldsymbol y_{train} ytrain

  首先来计算一下我们总共可以构建出多少条数据,由于构建数据集的数据在时间上是要连续的,而每个月只有前 20 20 20 天的数据,所以我们没法跨月构建数据集,在任意一个月内,我们有 20 ( 天 ) × 24 ( 小 时 ) 20(天)\times24(小时) 20()×24() 480 480 480 小时的数据,所以每 9 9 9 小时可以构建 X t r a i n \boldsymbol X_{train} Xtrain 上的一条数据,第 10 10 10 个小时的 P M 2.5 \rm PM2.5 PM2.5 可以作为这一条数据的标签。所以每个月可以有 471 471 471 条数据, 12 12 12 个月就有 5652 5652 5652 条数据。接下来是构建数据集的过程(以下代码是使用 Python 编写实现的,关于环境的配置等如有问题可在评论中联系我,我可以写个配置环境的教程):

Step1:读取数据集

  调用 p a n d a s \rm pandas pandas 包和 n u m p y \rm numpy numpy 包,使用 pd.read_csv()函数读取 t r a i n . c s v \rm train.csv train.csv 文件。

#读取数据集
import pandas as pd   
import numpy as np

data = pd.read_csv('./train.csv', encoding = 'big5')  #train.csv文件要与python代码文件(.py或.ipynb)在同一个目录下才行

  去除表格中的前三列(第一行自动被去除了,不用主动去除),并将表格中 R A I N F

### 关于李宏毅机器学习课程的PyCharm资源与教程 对于希望利用PyCharm进行李宏毅教授机器学习课程实践的学习者而言,可以考虑以下几个方面来获取相关资源和教程: #### 使用官方文档作为基础指南 JetBrains提供了详尽的PyCharm官方文档,这不仅涵盖了IDE的基础功能介绍,还包括了如何配置环境以便支持Python项目开发。这些资料能够帮助初学者快速上手并熟悉工具的各项特性。 #### 结合具体案例深入理解 针对特定应用场景如线性回归分析中的PM2.5预测任务[^2],可以通过阅读具体的代码实现样例加深对理论概念的理解。这类实例通常会展示完整的数据处理流程以及模型构建方法,在实践中掌握技能往往更加高效直观。 #### 利用社区力量解决问题 当遇到困难时,不妨求助于活跃的技术交流平台。GitHub Issues页面、Stack Overflow论坛或是Reddit上的r/MachineLearning板块都是不错的选择。许多前辈们分享的经验贴和技术讨论帖能为你提供宝贵的指导和支持。 #### 探索第三方博客文章及视频系列 网络上有不少个人博主撰写的关于集成PyCharm到日常编程工作流的文章或录制的教学录像。例如,“深度之眼”的系列打卡练习就包含了详细的步骤说明和技巧提示。此外,YouTube平台上也有众多UP主上传了高质量的相关教学内容可供参考。 ```python import torch from torch import nn, optim class LinearRegressionModel(nn.Module): def __init__(self): super().__init__() self.linear = nn.Linear(1, 1) def forward(self, x): return self.linear(x) model = LinearRegressionModel() criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.01) ``` 上述代码片段展示了基于PyTorch框架搭建简单线性回归模型的过程,这对于跟随李宏毅老师的课程完成相应作业具有定的借鉴意义[^3]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值