当前位置: 首页 > article >正文

回归涉及的函数

当然可以!以下是你学习笔记中涉及到的函数的详细讲解:

1. 导入必要的库

  • import: 用于导入所需的库和模块。例如,import numpy as np 导入 NumPy 库并简写为 np

2. 读取数据

  • pd.read_csv('temps.csv'):
    • 读取指定路径的 CSV 文件,并将其存储为 Pandas DataFrame。DataFrame 是一种二维标记的数据结构,类似于电子表格。
  • features.shape:
    • 获取 DataFrame 的维度,返回一个包含行数和列数的元组。例如,(行数, 列数)

3. 处理日期数据

  • zip():
    • 将多个可迭代对象聚合成一个元组的迭代器。可以方便地将多个列表合并为一组。
    • 示例:zip(years, months, days) 会将三个列表的元素组合成元组 (year, month, day)
  • datetime.datetime.strptime(date, '%Y-%m-%d'):
    • 将字符串格式的日期转换为 datetime 对象,便于日期的处理和比较。格式字符串 '%Y-%m-%d' 指定了输入字符串的日期格式。

4. 可视化数据

  • plt.style.use('fivethirtyeight'):
    plt.style.use() 是 Matplotlib 中用于设置图表风格的一个函数,它允许用户快速更改图表的外观,使得可视化结果更加美观且符合特定的展示需求。以下是对 plt.style.use() 的详细讲解:

  • style: 字符串,指定所要使用的样式名。可以是预定义的样式名称,也可以是自定义样式文件的路径。

预定义样式

Matplotlib 提供了多种预定义的样式,可以通过 plt.style.available 查看可用的样式列表。以下是一些常用的样式:

  • 'default': 默认样式。
  • 'ggplot': 模仿 ggplot2(R 语言的数据可视化包)的风格。
  • 'seaborn': 模仿 Seaborn(基于 Matplotlib 的数据可视化库)的风格,提供更加美观的色彩和布局。
  • 'fivethirtyeight': 模仿 FiveThirtyEight 网站的图表风格,适合用于数据新闻。
  • 'classic': 经典的 Matplotlib 风格。

  • plt.subplots(nrows=2, ncols=2, figsize=(10, 10)):
    • 创建一个包含 2 行 2 列子图的图表布局。figsize 参数指定图表的尺寸(宽度和高度)。
  • ax.plot(x, y):
    • 绘制 x 和 y 数据的曲线。ax 是子图对象,plot() 方法用于绘制折线图。
  • plt.tight_layout(pad=2):
    • 自动调整子图之间的间距,以防止标签重叠。

5. 独热编码处理分类变量

  • pd.get_dummies(features):
    • 该函数将分类变量转换为独热编码(One-Hot Encoding)格式。对于每个类别值,它创建一个新的列,并用 0 或 1 来指示该列是否包含该类别。这种编码方式使得分类变量能够被机器学习模型处理。

6. 准备标签和特征

  • np.array():
    • 将数据转换为 NumPy 数组,以便于进行数值计算和高效操作。NumPy 数组提供了比列表更快的性能。
  • features.drop('actual', axis=1):
    • 从 DataFrame 中删除指定列。axis=1 表示删除列(如果要删除行,则使用 axis=0)。这通常用于从特征中去掉标签列,以便只保留输入特征。

7. 数据标准化

  • preprocessing.StandardScaler():
    • 创建一个标准化对象。该对象将用于对数据进行标准化,使得特征具有均值为 0 和方差为 1 的标准正态分布。
  • fit_transform(features):
    • 计算特征的均值和标准差,并对数据进行标准化。fit() 方法计算均值和标准差,transform() 方法将这些统计信息应用于数据。

8. 构建神经网络模型

  • torch.tensor(data, dtype=float):
    • 将数据转换为 PyTorch 张量(tensor)。张量是 PyTorch 中的基本数据结构,类似于 NumPy 数组,但支持 GPU 加速。
  • torch.randn(size, dtype=float, requires_grad=True):
    • 随机初始化张量。size 指定张量的形状,requires_grad=True 表示需要计算该张量的梯度,以便进行反向传播。
  • torch.relu():
    • 应用 ReLU(Rectified Linear Unit)激活函数。该函数将输入值中的负数设为 0,正数保持不变,是深度学习中常用的激活函数。

9. 训练网络

  • loss.backward():
    • 计算损失函数关于模型参数的梯度,进行反向传播。该步骤是优化算法中的关键,用于调整网络权重。
  • optimizer.zero_grad():
    • 清空之前的梯度信息,防止累加。每次进行反向传播之前都需要清零梯度。
  • optimizer.step():
    • 更新模型参数。根据计算得到的梯度,优化器会调整权重,以减少损失函数。

10. 进行预测

  • my_nn(x):
    • 将输入特征传入已训练好的神经网络模型,获取预测值。这个操作会自动经过模型的所有层,返回输出结果。

11. 可视化结果

  • pd.DataFrame(data={...}):
    • 创建一个 Pandas DataFrame,用于存储数据。通过字典的方式指定列名和对应的数据。
  • plt.plot(x, y):
    • 绘制数据的折线图。在这里,通常用于比较真实值和预测值。
  • plt.legend():
    • 在图表中显示图例,以帮助区分不同的数据系列。
  • plt.xlabel()plt.ylabel():
    • 设置 x 轴和 y 轴的标签,方便理解图表的内容。

总结

这些函数共同构成了整个天气预测回归任务的流程,涵盖了数据读取、处理、可视化、特征准备、模型构建和训练等各个环节。如果你对某个特定函数的用法或参数有疑问,欢迎继续询问!


http://www.kler.cn/news/343401.html

相关文章:

  • C语言-了解程序环境和预处理看这一篇(超详解)
  • std::future::then的概念和使用方法
  • Java SSL使用Openssl ECC加密生成证书遇到的坑
  • Python和C++及MATLAB低温磁态机器学习模型
  • 【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem
  • 第19周JavaWeb编程实战-MyBatis实现OA系统 面试题解析
  • Go语言学习代码记录
  • C++继承深度剖析:从理论到实践的跨越
  • rzszscp端对端文件传输整理
  • 【SpringSecurity】基本流程
  • 职场上的人情世故你知多少
  • VARCHAR(50) 与 CHAR(50) 的区别
  • 活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!
  • KVM虚拟化技术
  • 启动hadoop后没有 NodeManager和 ResourceManager
  • Spring Boot RESTful API开发教程
  • 滚柱导轨适配技巧与注意事项!
  • linux线程 | 线程的控制
  • 关于mac下的nvm设置淘宝镜像源
  • 文件与目录的基本操作