数据预处理基础:数据清洗流程与质量评估
各位同学,今天我们来聊聊数据预处理。说实话,这步在风电功率预测里,往往是最枯燥但也是最关键的环节。我见过太多项目,模型选得再好,数据一塌糊涂,结果就是白忙活。嗯,咱们先把这个基础打牢。
数据清洗流程:从原始数据到可用数据
数据清洗,说白了就是把脏数据变成干净数据的过程。我个人习惯把它分成四个步骤,每一步都有坑,我一个个说。
第一步:缺失值处理
风电数据里,缺失值太常见了。传感器故障、通信中断、存储异常,随便一个原因就能让你缺一堆数据。我遇到过最夸张的一次,某风场连续三天数据全丢,后来发现是采集服务器硬盘满了。
处理缺失值,常用的方法有几种:
- 删除法:直接删掉有缺失的行。适合缺失比例很小的情况(比如<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分钟,基本就没用了。因为预测模型需要最新的数据来更新状态。
我一般这样评估时效性:
- 计算数据采集时间与入库时间的时间差
- 统计延迟超过阈值的比例
- 检查是否有数据堆积(比如某段时间数据突然大量涌入)
一句话总结:数据质量评估不是一次性工作,而是需要持续监控的。我建议每个项目都建立一个数据质量看板,每天自动生成这四个维度的报告。
知识体系框架
下面这张图,把数据预处理的核心逻辑串起来了。你可以把它当作一个检查清单,每次做数据清洗时对照着来。
这张图把整个流程串起来了:原始数据 → 数据清洗(四步) → 质量评估(四维) → 可用数据。每一步都环环相扣,缺一不可。
我的建议:刚开始做数据预处理时,别想着一步到位。先跑一遍流程,看看数据大概什么情况,再针对性地处理。我一般会先做完整性检查,因为如果数据缺太多,后面的步骤就没意义了。
好了,数据预处理的基础就讲到这里。记住一句话:数据质量决定了模型的天花板。你模型再牛,数据不行,一切都是白搭。
公众号:蓝海资料掘金营,微信deep3321