Jupyter Notebook 中 'Out' 的含义

在 Jupyter Notebook 中,'Out' 代表代码单元格的输出结果。当您运行一个代码单元格时,Jupyter 会执行代码并将结果显示在 'Out' 区域。

exponential_smoothing 函数解析

以下代码定义了一个名为 'exponential_smoothing' 的函数,用于对数据集进行指数平滑处理:

def exponential_smoothing(df, sensors, n_samples, alpha=0.4):
    df = df.copy()
    # 首先,计算指数加权平均值
    df[sensors] = df.groupby('unit_nr')[sensors].apply(lambda x: x.ewm(alpha=alpha).mean()).reset_index(level=0, drop=True)
    
    # 然后,删除每个 'unit_nr' 的前 n_samples 个样本,以减少滤波延迟
    def create_mask(data, samples):
        result = np.ones_like(data)
        result[0:samples] = 0
        return result
    
    mask = df.groupby('unit_nr')['unit_nr'].transform(create_mask, samples=n_samples).astype(bool)
    df = df[mask]
    
    return df

函数功能:

该函数实现了指数平滑算法,用于平滑时间序列数据,减少数据波动。

参数说明:

  • df: 输入的数据集 (Pandas DataFrame)。
  • sensors: 需要进行平滑处理的列名列表。
  • n_samples: 每个 'unit_nr' 中需要删除的初始样本数量。
  • alpha: 平滑因子,取值范围为 0 到 1,控制平滑程度。

返回值:

  • df: 经过指数平滑处理后的数据集。

代码解释:

  1. 复制输入数据集,避免修改原始数据。
  2. 使用 'groupby' 和 'ewm' 函数计算每个 'unit_nr' 中指定列的指数加权平均值。
  3. 创建一个掩码数组,用于删除每个 'unit_nr' 的前 n_samples 个样本。
  4. 应用掩码数组筛选数据,保留剩余样本。
  5. 返回处理后的数据集。

总结:

'exponential_smoothing' 函数通过指数加权平均方法对数据进行平滑处理,并可以设置删除初始样本数量以减少滤波延迟。该函数可用于处理各种时间序列数据,例如传感器数据、金融数据等。

Jupyter Notebook 中 Out 的含义及 exponential_smoothing 函数解析

原文地址: https://www.cveoy.top/t/topic/jPdg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录