设备故障预测

数据挖掘 机器学习 分类 预测建模 监督学习
2021-09-18 22:22:17

我有一个管理设备的系统。当这些设备出现故障时,它们将被维修。想象一下我的数据集如下所示:

ID
Type
# of times serviced

示例数据:

|ID| Type       | #serviced |
|1 | iphone     | 1         |
|2 | iphone     | 0         |
|3 | android    | 1         |
|4 | android    | 0         |
|5 | blackberry | 0         |

我想要做的是我想预测“在所有尚未维修的设备中,哪些设备可能会维修”?(ie) 识别“有风险”的设备。

问题是我的训练数据将是#serviced > 0。任何#serviced=0 都不会被冻结,并且似乎不是包含在训练中的有效候选人。(即)当它失败时,它将被服务,因此计数会增加。

  1. 这是有监督的还是无监督的问题?(监督是因为我有服务和非服务标签,非监督是因为我想将非服务与服务集群并在那里识别有风险的设备)

  2. 我应该在培训中包含哪些数据?

笔记:

这个例子显然被简化了。实际上,我有更多描述设备的功能。

2个回答

您应该在维修电话时包含数据以创建生存模型。这些模型通常用于可靠性工程以及治疗效果。对于可靠性工程,将数据拟合到 Weibull 分布是很常见的。即使是飞机制造商也认为该模型在使用三到五个数据点进行校准后是可靠的。我强烈推荐 R 包 'flexsurv' 包。

您不能使用典型的线性或逻辑回归,因为您的人口中的某些电话会离开您的观察期而不会得到服务。生存模型允许这种缺失的信息(这称为审查)。

通常你会有以下数据

|ID| Type       | serviced  | # months_since_purchase
|1 | iphone     | 1         | 12
|2 | iphone     | 0         | 15
|3 | android    | 1         | 2
|4 | android    | 0         | 10
|5 | blackberry | 0         | 5.5

使用该数据,您可以在 R 中创建以下模型

require(survival)
model <- survfit(Surv(months_since_purchase, serviced) ~ strata(Type) +
 cluster(ID), data = phone_repairs)

survfit.formula Surv(months_since_purchase, serviced) ~ strata(Type) + cluster(ID) 表示进行观察months_since_purchase时间,serviced如果电话被维修则为 1,否则为 0,strata(Type) 将确保您为每个电话创建不同的生存模型, cluster(ID)将确保考虑与相同 ID 相关的事件作为一个集群。

您可以使用联合模型扩展此模型,例如JM.

这是监督学习问题。Type是一个预测器。#serviced分类器是目标变量。模型是在您已有的样本集上训练的。最好的猜测是,任何模型都不具备实质性的预测能力。Type是不足够的。

尝试在模型中包含更多因素(预测变量)。years_being_in_usage, equipment_model,have_been_in_service_before等等。你得到的越多,你可以训练的模型就越好。