回归涉及的函数

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

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 轴的标签,方便理解图表的内容。

总结

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

相关推荐
爱数学的程序猿10 小时前
机器学习中的回归分析:理论与实践
人工智能·机器学习·回归
小白熊_XBX21 小时前
机器学习可视化教程——混淆矩阵与回归图
人工智能·python·机器学习·矩阵·回归·sklearn
小白熊_XBX1 天前
sklearn机器学习实战——随机森林回归与特征重要性分析全过程(附完整代码和结果图)
人工智能·随机森林·机器学习·数据挖掘·回归·scikit-learn·sklearn
机器学习之心2 天前
回归预测 | Matlab基于SABO-SVR减法平均算法优化支持向量机的数据多输入单输出回归预测
支持向量机·matlab·回归·多输入单输出回归预测·减法平均算法·sabo-svr
请你喝好果汁6412 天前
回归任务学习笔记
人工智能·回归
拜刊物苏哲3 天前
【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
机器学习·分类·回归
凭栏落花侧3 天前
回归分析在数据挖掘中的应用简析
人工智能·数据挖掘·回归
羊小猪~~4 天前
机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+
人工智能·python·机器学习·数据挖掘·数据分析·回归·时序数据库
学海溺子6 天前
时间相关数据的统计分析(笔记更新中)
回归