3、多维特征工程:时域特征提取与频域特征提取

各位工程师朋友,咱们接着聊。上一章我们把数据清洗干净了,但原始数据就像一堆散落的零件,你得把它组装成有用的工具。这一章,我就讲讲怎么从储能设备的时序数据里,挖出真正有价值的特征。

说白了,特征工程就是「把原始数据变成模型能听懂的语言」。我个人习惯把特征分成三大类:时域的、频域的、统计的。咱们一个一个来。

3.1 时域特征提取:最直观的「肉眼可见」

时域特征,就是直接看信号随时间怎么变。我最早做储能项目时,就靠这几个特征判断电池状态,简单但有效。

3.1.1 均值(Mean)

均值反映信号的「直流分量」。比如电池电压的均值,能告诉你整体电压水平。计算公式很简单:

mean = (1/N) * Σ x_i

我在项目中遇到过一个问题:某储能柜的电压均值总是偏低,排查后发现是某个模组内阻异常增大。你看,一个均值就能暴露问题。

3.1.2 方差(Variance)

方差衡量数据的波动程度。电池电压方差突然变大,往往意味着内部短路或接触不良。公式:

var = (1/N) * Σ (x_i - mean)²

⚠️ 注意:方差对异常值非常敏感。我曾经因为一个采样噪声,导致方差计算偏差30%。建议先做中值滤波再算方差。

3.1.3 峰峰值(Peak-to-Peak)

峰峰值 = 最大值 - 最小值。这个特征在分析充放电切换瞬间特别有用。比如电池从充电切到放电时,电压峰峰值如果超过50mV,说明内阻可能偏大。

我习惯把这三个特征组合使用:均值看趋势,方差看稳定性,峰峰值看极端情况。三者结合,基本能覆盖90%的时域分析需求。

3.2 频域特征提取:藏在「频率」里的秘密

时域看不出来的东西,频域往往一目了然。你想想看,电池的某些故障特征,比如电化学阻抗谱中的特定频率响应,在时域里根本看不出来。

3.2.1 快速傅里叶变换(FFT)

FFT能把时域信号转换到频域。我常用的Python代码:

import numpy as np

def extract_fft_features(signal, fs):
    n = len(signal)
    fft_vals = np.fft.fft(signal)
    fft_freq = np.fft.fftfreq(n, 1/fs)
    
    # 只取正频率部分
    pos_mask = fft_freq >= 0
    fft_vals = fft_vals[pos_mask]
    fft_freq = fft_freq[pos_mask]
    
    # 提取幅值
    amplitude = np.abs(fft_vals) / n
    return fft_freq, amplitude

嗯,这里要注意:FFT结果是对称的,我们只取正频率部分就够了。我刚开始做时没注意这个,结果特征维度翻了一倍,模型训练慢得要命。

3.2.2 功率谱密度(PSD)

PSD比FFT更进一步,它告诉你不同频率成分的「能量」分布。对于储能设备,PSD能有效识别出特定频率的噪声源。

举个例子:某储能站频繁报出电压异常,时域波形看不出问题。我用PSD一分析,发现50Hz工频分量异常高——原来是接地不良导致的工频干扰。

from scipy import signal

def compute_psd(signal, fs):
    freqs, psd = signal.welch(signal, fs, nperseg=1024)
    return freqs, psd

💡 小技巧:PSD计算时,nperseg参数很关键。设太小了频率分辨率差,设太大了计算慢。我一般取1024或2048,平衡效果和速度。

3.3 统计特征构建:用数学语言描述数据

统计特征,说白了就是用数学指标描述数据的「形状」。我常用的统计特征有这些:

特征名称 计算公式 物理意义 应用场景
偏度(Skewness) E[(x-μ)³]/σ³ 数据分布的不对称性 判断电池是否过充/过放
峰度(Kurtosis) E[(x-μ)⁴]/σ⁴ - 3 数据分布的尖峭程度 检测异常脉冲信号
均方根(RMS) √(mean(x²)) 信号的有效值 评估电流/电压的发热效应
波形因子 RMS / |mean| 信号波形的形状特征 区分不同类型负载

我曾经用偏度特征成功预测过一次电池热失控。当时电池电压的偏度值从-0.2突然跳到0.8,我立刻判断出电池内部发生了不可逆的化学变化。嗯,这个经验让我后来在所有项目中都把偏度作为必选特征。

3.4 知识体系总览

为了让你更直观地理解这三类特征的关系,我画了一张图:

储能设备多维特征工程知识体系 原始时序数据 时域特征 频域特征 统计特征 均值、方差、峰峰值 趋势分析、波动检测 FFT、功率谱密度 频率成分、噪声识别 偏度、峰度、RMS 分布形态、异常检测 三者结合 → 全面刻画储能设备运行状态

这张图把三类特征的关系说清楚了。时域特征最直观,频域特征能发现隐藏问题,统计特征则提供数学层面的描述。三者缺一不可。

📌 核心要点:特征工程不是越多越好,而是越「对」越好。我建议你从时域的三个基本特征开始,逐步加入频域和统计特征,观察模型效果的变化。贪多嚼不烂,这个道理在特征工程里同样适用。

好了,这一章的内容就到这里。特征提取是数据分析的「手艺活」,多练、多总结,你也能成为高手。


公众号:蓝海资料掘金营,微信deep3321