第1章:机器学习基础回顾

各位同学好,我是老张。今天咱们正式开始这门课的第一章——机器学习基础回顾。

你可能会问:做储能优化,为什么要学机器学习?

我直接告诉你答案:因为传统的规则控制,说白了就是「死脑筋」。电池什么时候充、什么时候放,靠固定阈值根本玩不转。而机器学习,能让系统自己学会「看天吃饭」——根据电价、天气、负载变化,动态调整策略。

好,咱们先不急着上代码。先把地基打牢。

1.1 监督学习:有老师带着学

监督学习,就是给模型一堆「标准答案」让它学。

举个例子:你手里有过去一年的储能数据——每个时刻的SOC、电价、负载,以及当时「应该充还是放」的决策。把这些数据喂给模型,它就能学会:在什么条件下该充电,什么条件下该放电。

我个人习惯把监督学习分成两类:

  • 回归问题:预测连续值。比如预测未来1小时的负载功率,输出是3.5kW、7.2kW这样的具体数字。
  • 分类问题:预测离散类别。比如判断「当前该充电、放电、还是待机」,输出是0、1、2这样的标签。

避坑指南:我曾经在项目里把回归当分类做,结果模型死活不收敛。后来才发现,负载预测是连续值,不能用softmax输出。记住:回归用MSE损失,分类用交叉熵损失。

1.2 无监督学习:自己摸索规律

无监督学习,没有标准答案。模型自己从数据里找模式。

在储能场景里,我常用它做两件事:

  • 聚类:把历史数据分成几类。比如把「高电价+高负载」归为一类,「低电价+低负载」归为另一类。这样系统就能针对不同场景制定不同策略。
  • 异常检测:找出电池的异常行为。比如某天SOC曲线突然异常,可能是传感器坏了,也可能是电池老化了。

嗯,这里要注意:无监督学习的结果需要人工解读。机器告诉你「分成了3类」,但每类代表什么含义,得靠你的业务经验去判断。

1.3 强化学习:边试错边学习

这是咱们这门课的重头戏。

强化学习,说白了就是「让智能体自己摸索着学」。它没有现成的标准答案,只有奖励和惩罚。

想象一下:你让一个智能体控制储能系统。它每次做出充放电决策后,环境会反馈一个奖励——如果决策让电费降低了,给正奖励;如果让电池过放了,给负奖励。智能体就靠这些奖励信号,慢慢学会最优策略。

我刚开始做强化学习时,总觉得它不靠谱——让机器自己瞎试,万一试出事故怎么办?后来发现,可以在仿真环境里先训练,等模型稳定了再部署到真实系统。这个技巧,后面章节会详细讲。

个人经验:强化学习特别适合储能场景,因为电价、负载都是动态变化的,没有固定的「最优解」。强化学习能自适应地调整策略,这是传统PID控制做不到的。

1.4 特征工程:数据预处理是关键

很多同学觉得,模型选得好就万事大吉了。其实不然。我见过太多项目,模型再牛,数据一塌糊涂,结果照样拉胯。

特征工程,就是把原始数据变成模型能理解的形式。具体来说:

  • 缺失值处理:传感器偶尔会掉线,数据出现空值。我习惯用前向填充法——用上一时刻的值补上。简单有效。
  • 归一化/标准化:SOC是0~1之间的数,电价可能是0.3~1.2元/kWh,负载可能是0~100kW。如果不做归一化,模型会天然偏向数值大的特征。
  • 时间特征提取:把时间戳拆成「小时」「星期几」「是否节假日」等特征。储能系统在白天和晚上的行为完全不同,这个特征很关键。
# 一个简单的特征工程示例
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 原始数据
data = pd.DataFrame({
    'soc': [0.5, 0.6, None, 0.8],
    'price': [0.8, 1.2, 0.6, 0.9],
    'load': [50, 80, 60, 70]
})

# 缺失值处理:前向填充
data['soc'].fillna(method='ffill', inplace=True)

# 归一化
scaler = MinMaxScaler()
data[['price', 'load']] = scaler.fit_transform(data[['price', 'load']])

print(data)

注意:归一化时,一定要用训练集的参数去变换测试集,不能把测试集和训练集混在一起归一化。否则会造成数据泄露,模型评估结果会虚高。

1.5 知识体系总览

为了让你对本章内容有个整体印象,我画了一张图。这张图把机器学习三大范式、回归与分类的区别、以及特征工程的核心步骤串在了一起。

机器学习基础知识体系 监督学习 无监督学习 强化学习 回归:预测连续值 分类:预测离散标签 例:负载预测、故障诊断 聚类:发现数据分组 异常检测:识别离群点 例:用户行为分群 策略优化:试错学习 奖励驱动:最大化回报 例:储能充放电策略 特征工程与数据预处理 缺失值处理 前向填充 / 插值 归一化 / 标准化 MinMax / Z-score 时间特征提取 小时 / 星期 / 节假日 数据质量决定模型上限

这张图里,我把三大范式放在顶部,下面展开各自的核心任务。最下面是特征工程——它是所有机器学习项目的基础。记住一句话:数据质量决定模型上限。特征工程做不好,再牛的算法也白搭。

好,第一章的内容就到这里。下一章,咱们会深入强化学习的核心算法——Q-learning,并手把手带你写一个储能充放电的仿真环境。


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