4. 机器学习基础:监督学习、无监督学习与模型评估
各位同事,大家好。今天我们来聊聊机器学习在风电运维中的应用。说实话,我刚入行那会儿,对机器学习也是一头雾水。但干得久了你会发现,这东西说白了就是帮我们从数据里找规律。
你想想看,一台风机每天产生多少数据?振动、温度、功率、转速……光靠人眼看,根本看不过来。这时候,机器学习就能派上大用场了。
4.1 监督学习:回归与分类
监督学习,我习惯叫它“有老师带着学”。什么意思呢?就是给模型一堆“标准答案”,让它自己琢磨规律。
4.1.1 回归问题
回归,说白了就是预测一个连续值。比如预测齿轮箱剩余寿命,或者预测未来24小时的发电量。
我个人习惯用线性回归做基线模型。先跑一个简单的,看看数据大概是什么趋势。
# 线性回归示例
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
嗯,这里要注意:回归模型对异常值特别敏感。我在项目里遇到过,一次传感器故障导致数据里有个“飞点”,结果模型预测直接偏了20%。所以数据清洗这步,千万别偷懒。
4.1.2 分类问题
分类呢,就是判断“是或不是”。比如判断当前风机状态是正常还是异常,或者判断故障类型是轴承磨损还是齿轮断裂。
我常用的分类算法是随机森林和XGBoost。为什么?因为它们对风电这种高噪声数据,鲁棒性比较好。
# 随机森林分类示例
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
4.2 无监督学习:聚类与异常检测
无监督学习,就是“没老师带着学”。数据没有标签,让模型自己发现结构。
4.2.1 聚类分析
聚类,就是把相似的数据归到一起。比如把不同工况下的风机运行数据分成几类,看看每种工况有什么特点。
K-means是最常用的聚类算法。但我提醒一句:K值怎么选?别瞎猜。用肘部法则,画个图看看。
# K-means聚类示例
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
labels = kmeans.labels_
4.2.2 异常检测
异常检测,这个在风电里太重要了。说白了就是找“不对劲”的数据点。
我曾经用孤立森林算法,成功提前3天预警了一次齿轮箱故障。当时运维团队还不信,结果拆开一看,齿面已经出现微裂纹了。
4.3 模型评估指标
模型好不好,不能光靠感觉。得用指标说话。
4.3.1 回归指标:RMSE与MAE
| 指标 | 全称 | 特点 |
|---|---|---|
| RMSE | 均方根误差 | 对大误差惩罚更重 |
| MAE | 平均绝对误差 | 对异常值不敏感 |
我个人习惯两个都看。如果RMSE远大于MAE,说明数据里有“离谱”的预测点,得回去查查。
from sklearn.metrics import mean_squared_error, mean_absolute_error
import numpy as np
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
mae = mean_absolute_error(y_true, y_pred)
4.3.2 分类指标:F1-score
分类问题,光看准确率不够。比如故障检测,漏报一次可能损失几十万,误报一次只是浪费点人工。这时候F1-score就派上用场了。
F1-score是精确率和召回率的调和平均。值越高,说明模型越均衡。
from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred, average='weighted')
4.4 过拟合与欠拟合处理
这两个问题,是机器学习里的“老大难”。
4.4.1 过拟合
过拟合,就是模型把训练数据背得滚瓜烂熟,但一遇到新数据就懵了。就像学生只会做原题,换个数字就不会了。
怎么判断?训练集表现很好,测试集表现很差。这就是过拟合的典型症状。
解决办法:
- 增加训练数据量
- 降低模型复杂度(减少树深度、减少特征数)
- 使用正则化(L1、L2)
- 早停法(Early Stopping)
4.4.2 欠拟合
欠拟合正好相反。模型太简单,连训练数据都没学好。训练集和测试集表现都很差。
解决办法:
- 增加模型复杂度
- 增加更多特征
- 减少正则化强度
知识体系总览
下面这张图,是我自己整理的本章知识结构。你可以把它当成一张“地图”,学完回头看看,思路会更清晰。
好了,这一章的内容就到这里。机器学习不是玄学,是工具。用好了,它能帮我们省下大量时间和成本。下一章,我们会深入聊聊特征工程——说白了,就是怎么从原始数据里挖出真正有用的信息。
公众号:蓝海资料掘金营,微信deep3321