数据预处理基础:数据清洗流程与质量评估

各位同学,今天我们来聊聊数据预处理。说实话,这步在风电功率预测里,往往是最枯燥但也是最关键的环节。我见过太多项目,模型选得再好,数据一塌糊涂,结果就是白忙活。嗯,咱们先把这个基础打牢。

数据清洗流程:从原始数据到可用数据

数据清洗,说白了就是把脏数据变成干净数据的过程。我个人习惯把它分成四个步骤,每一步都有坑,我一个个说。

第一步:缺失值处理

风电数据里,缺失值太常见了。传感器故障、通信中断、存储异常,随便一个原因就能让你缺一堆数据。我遇到过最夸张的一次,某风场连续三天数据全丢,后来发现是采集服务器硬盘满了。

处理缺失值,常用的方法有几种:

  • 删除法:直接删掉有缺失的行。适合缺失比例很小的情况(比如<5%)。但别删太多,否则样本量不够。
  • 填充法:用均值、中位数、众数填充。我个人更推荐用前后时刻的值填充,因为风电数据有很强的时间连续性。
  • 插值法:线性插值、样条插值。适合风速、功率这种连续变化的量。

核心原则:缺失值处理没有银弹。你得先看看数据为什么缺失,再决定怎么处理。比如停机检修期间的数据缺失,那就不该填充,而是标记为正常状态。

第二步:异常值检测与处理

异常值,就是那些明显不合理的数据点。比如风速100m/s,功率5000kW(额定才2000kW),这种一看就是错的。

我常用的检测方法:

  • 3σ原则:超出均值±3倍标准差的数据,视为异常。适合正态分布的数据。
  • 箱线图法:用四分位数判断。IQR(四分位距)之外的算异常。这个方法对偏态分布更友好。
  • 业务规则法:根据物理常识设定阈值。比如风速不能超过切出风速,功率不能超过额定功率的1.2倍。这个最靠谱,但需要你懂业务。

注意:别把正常波动当成异常。风电功率本身就有很大的随机性,尤其是湍流风速下,功率波动20%-30%都很正常。我曾经有个同事,把阵风引起的功率尖峰全当异常删了,结果模型预测结果偏得离谱。

第三步:重复值处理

重复数据,通常是因为采集系统重复上报或者数据合并时出了问题。处理起来简单:直接去重。但要注意,时间戳完全相同的重复,和数值完全相同的重复,处理方式不一样。前者可能是系统bug,后者可能是正常现象(比如风速稳定时功率确实没变)。

第四步:格式统一与标准化

这一步很多人会忽略。不同来源的数据,时间格式可能不一样(有的用"2024-01-01 00:00:00",有的用"2024/01/01 00:00"),单位也可能不一样(风速有的用m/s,有的用km/h)。

我的习惯是:

  • 时间统一成UTC+8,精确到秒
  • 风速统一用m/s
  • 功率统一用kW
  • 风向统一用角度(0-360°)

数据质量评估指标

数据洗完了,怎么知道洗得好不好?这就需要用指标来量化评估。我一般看四个维度:完整性、准确性、一致性、时效性。

完整性

完整性,就是数据有没有缺。计算公式很简单:

完整性 = (实际数据量 / 理论数据量) × 100%

比如一个风场有10台风机,每台每10分钟上报一条数据,一天的理论数据量就是10×6×24=1440条。如果实际只有1300条,那完整性就是90.3%。

我个人认为,完整性低于80%的数据集,基本不能用。低于90%的,需要谨慎处理。

完整性等级 范围 建议处理方式
优秀 ≥95% 直接使用,少量缺失可插值
良好 90%-95% 需要插值或填充
一般 80%-90% 需要评估缺失模式,谨慎处理
<80% 建议重新采集或放弃该数据源

准确性

准确性,就是数据跟真实值的接近程度。这个指标最难量化,因为你往往不知道真实值是多少。我常用的方法是:

  • 交叉验证:用不同传感器测同一个量,对比差异
  • 物理约束检查:风速和功率是否符合风电机组的理论功率曲线
  • 统计分布检查:数据分布是否符合预期(比如风速是否符合威布尔分布)

小技巧:我习惯在数据清洗后,画一张风速-功率散点图。如果散点都落在理论功率曲线附近,说明数据质量不错。如果散点满天飞,那肯定有问题。

一致性

一致性,就是不同数据源、不同时间点的数据是否相互吻合。举个例子:

  • 同一台风机,SCADA系统和能量管理系统记录的功率应该一致
  • 相邻两台风机,风速数据不应该差太多(除非一台被遮挡)
  • 同一时间点,风速和功率的变化趋势应该一致

我遇到过最典型的不一致问题:某风场有两套数据采集系统,一套是SCADA,一套是第三方监测系统。两套系统记录的风速数据,偏差平均达到15%。后来发现是两套系统的传感器安装高度不一样。这种问题,不仔细检查根本发现不了。

时效性

时效性,就是数据是否及时。对于风电功率预测来说,数据延迟超过15分钟,基本就没用了。因为预测模型需要最新的数据来更新状态。

我一般这样评估时效性:

  • 计算数据采集时间与入库时间的时间差
  • 统计延迟超过阈值的比例
  • 检查是否有数据堆积(比如某段时间数据突然大量涌入)

一句话总结:数据质量评估不是一次性工作,而是需要持续监控的。我建议每个项目都建立一个数据质量看板,每天自动生成这四个维度的报告。

知识体系框架

下面这张图,把数据预处理的核心逻辑串起来了。你可以把它当作一个检查清单,每次做数据清洗时对照着来。

数据预处理知识体系 原始数据 数据清洗流程 缺失值处理 删除/填充/插值 异常值检测 3σ/箱线图/业务规则 重复值处理 去重/合并 格式统一 时间/单位标准化 数据质量评估 完整性 数据是否齐全 准确性 数据是否真实 一致性 数据是否矛盾 时效性 数据是否及时 可用数据

这张图把整个流程串起来了:原始数据 → 数据清洗(四步) → 质量评估(四维) → 可用数据。每一步都环环相扣,缺一不可。

我的建议:刚开始做数据预处理时,别想着一步到位。先跑一遍流程,看看数据大概什么情况,再针对性地处理。我一般会先做完整性检查,因为如果数据缺太多,后面的步骤就没意义了。

好了,数据预处理的基础就讲到这里。记住一句话:数据质量决定了模型的天花板。你模型再牛,数据不行,一切都是白搭。


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