4、机器学习基础:监督学习(回归、分类)、无监督学习(聚类、异常检测)、模型评估指标(准确率、召回率、F1-score)

各位同行,大家好。这一章我们聊聊机器学习在预测性维护里的基础应用。说实话,很多搞设备维护的兄弟一听到“机器学习”就头大,觉得那是算法工程师的事。其实不然,你只要搞懂几个核心概念,就能让机器帮你干活。

我个人习惯把机器学习分成两大类:监督学习无监督学习。说白了,区别就在于——你的数据有没有“标准答案”。

机器学习在预测性维护中的应用框架 机器学习基础 监督学习 无监督学习 回归(预测数值) 分类(判断类别) 聚类(发现分组) 异常检测(找离群点) 模型评估指标 准确率 / 召回率 F1-score / 混淆矩阵

监督学习:有答案的“老师傅”带徒弟

监督学习,就像老师傅带徒弟。你给徒弟一堆历史故障数据,告诉他“这个振动值对应轴承磨损”、“那个温度曲线对应电机过载”。徒弟学完后,看到新的数据就能判断——嗯,这情况我见过,八成要出问题。

在预测性维护里,监督学习主要干两件事:回归分类

回归:预测“还剩多少寿命”

回归,说白了就是预测一个连续数值。比如“这台泵还能跑多少小时?”、“轴承磨损量是多少毫米?”。

我记得有一次在化工厂做项目,客户想知道离心泵的剩余使用寿命(RUL)。我们采集了振动、温度、流量等历史数据,用回归模型一跑,预测结果和实际拆检结果误差在5%以内。老师傅们看了直呼“这东西靠谱”。

核心思路:回归模型学习的是“特征”到“目标值”的映射关系。常见算法有线性回归、决策树回归、随机森林回归。

# 一个简单的线性回归示例(Python)
from sklearn.linear_model import LinearRegression
import numpy as np

# 假设振动幅值(mm/s)作为特征,剩余寿命(小时)作为目标
X = np.array([[2.1], [3.5], [5.8], [7.2], [9.0]])  # 振动值
y = np.array([800, 650, 400, 200, 50])              # 剩余寿命

model = LinearRegression()
model.fit(X, y)

# 预测:振动值6.5 mm/s时,剩余寿命是多少?
prediction = model.predict([[6.5]])
print(f"预测剩余寿命:{prediction[0]:.0f} 小时")

我的经验:回归模型对数据质量非常敏感。如果传感器有漂移或噪声,预测结果会偏差很大。我建议先做数据清洗和滤波,别急着上模型。

分类:判断“正常还是故障”

分类,就是给数据打标签。比如“这台设备当前状态是正常、预警还是故障?”、“这个振动模式属于轴承故障还是齿轮故障?”。

分类模型输出的是离散的类别。常见算法有逻辑回归、支持向量机(SVM)、K近邻(KNN)等。

举个例子,我在风电场的项目中,用分类模型判断齿轮箱的故障类型。输入是振动信号的频谱特征,输出是“正常”、“齿面磨损”、“断齿”三个类别。准确率做到了92%以上。

注意:分类模型最怕“样本不平衡”。比如正常数据占99%,故障数据只占1%。模型会偷懒——全部预测为正常,准确率也有99%,但实际毫无用处。这时候需要过采样、欠采样或者调整类别权重。

无监督学习:没有答案,自己找规律

无监督学习,就像让一个新来的工程师自己去车间转悠,观察设备运行规律,自己发现哪些设备“长得像”、哪些数据“不对劲”。没有标准答案,全靠数据本身说话。

在预测性维护里,无监督学习主要用在聚类异常检测

聚类:把设备“分堆”

聚类,就是把相似的数据点归到同一组。比如,你有100台同型号的泵,运行数据各不相同。聚类算法可以自动把它们分成几类——运行平稳的一类、轻微磨损的一类、严重劣化的一类。

我曾经用K-means算法对某工厂的压缩机集群做聚类分析。结果发现有一类设备的振动特征明显偏离正常群体,后来检查发现是安装基础松动。你看,不用打标签也能发现问题。

常用算法:K-means、DBSCAN、层次聚类。K-means简单高效,但需要预先指定类别数K;DBSCAN不需要指定K,还能识别噪声点。

异常检测:找“不一样”的那个

异常检测,就是找出那些“格格不入”的数据点。在设备维护中,异常往往就是故障的前兆。

我记得有一次做水泵的在线监测,用孤立森林(Isolation Forest)算法做异常检测。模型在正常运行数据上训练,然后实时打分。有一天模型突然报警,说某个数据点异常度很高。我们赶紧通知现场检查,发现是轴承保持架出现了微裂纹。提前48小时预警,避免了非计划停机。

避坑指南:我曾经犯过一个错误——直接用原始振动数据做异常检测,结果误报率很高。后来发现,应该提取特征(如有效值、峰值因子、峭度等)后再做检测。特征工程这一步,千万别省。

模型评估指标:怎么知道模型好不好?

模型建好了,总得有个标准来评判吧?就像你带徒弟,总得考试看看他学得怎么样。评估指标就是这场“考试”。

对于分类模型,最常用的三个指标是:准确率召回率F1-score

准确率(Accuracy)

准确率 = 预测正确的样本数 / 总样本数。听起来很直观,对吧?但我要提醒你——准确率高不一定代表模型好

为什么?回到刚才说的样本不平衡问题。如果故障样本只占1%,模型全部预测为正常,准确率是99%,但这个模型有什么用?它一个故障都抓不住。

召回率(Recall)

召回率 = 正确预测为正类的样本数 / 实际正类样本总数。说白了,就是“所有真正的故障中,模型找出了多少”。

在预测性维护里,召回率往往比准确率更重要。漏掉一个故障,可能意味着设备损坏、产线停摆。我宁愿模型多报几次假警(误报),也不希望它漏掉一次真故障。

F1-score

F1-score是准确率和召回率的调和平均。它综合了两者的表现,是一个更平衡的指标。

公式很简单:F1 = 2 × (准确率 × 召回率) / (准确率 + 召回率)

我个人习惯用F1-score作为模型选型的首要指标。因为它不会让模型“偏科”——要么只追求准确率而漏报,要么只追求召回率而误报一堆。

指标 含义 预测性维护中的意义
准确率 所有预测中,正确的比例 反映整体判断能力,但易被不平衡数据欺骗
召回率 实际故障中,被正确识别的比例 漏报越少,召回率越高。设备维护更关注这个
F1-score 准确率和召回率的调和平均 平衡指标,适合模型对比和选型

我的建议:在预测性维护项目中,优先关注召回率和F1-score。准确率可以作为参考,但别太当真。你想想看,漏掉一次故障的代价,可能抵得上100次误报的麻烦。

小结

这一章我们聊了监督学习和无监督学习在预测性维护中的应用。监督学习适合有历史标签的场景,比如预测剩余寿命、判断故障类型。无监督学习适合探索性分析,比如设备聚类、异常检测。评估指标是检验模型好坏的标尺,别只看准确率,召回率和F1-score更实用。

嗯,内容就到这里。机器学习不是玄学,是工具。用好了,它能帮你省下大把时间和维修成本。


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