我正在研究专注于预测故障的时间序列分类任务。我将问题描述为一个多步预测问题,我的目标是预测y(t+1 hour) = f(X_lagged). 我的目标y要么是 1,要么是 0,问题本质上是一个二元分类问题。在我读过的论文中,recall/precision/f1 指标被用作模型评估指标。但是,如果我想将问题表述为“故障在 1 小时内发生的概率是多少?”,我需要使用什么指标?
时间序列分类任务的概率与召回率
数据挖掘
机器学习
分类
时间序列
2022-02-16 12:35:11
2个回答
[编辑]
曲线下面积 (AUC)非常适合此类问题,但它并不完全是标准情况。ROC 曲线是通过根据预测的故障概率对实例进行排名来构建的,例如:
p(faulty) gold
0.03 0
0.14 1
0.19 0
0.23 0
0.31 1
0.32 0
0.65 1
0.78 1
0.83 0
0.90 1
每个概率级别对应于二元分类问题的一个可能阈值。可以为每个可能的阈值级别计算 True/False Positive/Negative 的数量:
p(faulty) gold TP TN FP FN
5 0 5 0
0.03 0 5 1 4 0
0.14 1 4 1 4 1
0.19 0 4 2 3 1
0.23 0 4 3 2 1
0.31 1 3 3 2 2
0.32 0 3 4 1 2
0.65 1 2 4 1 3
0.78 1 1 4 1 4
0.83 0 1 5 0 4
0.90 1 0 5 0 5
在这个阶段,我们可以准确地获得标准 ROC 曲线所需的数据:根据这些值,可以计算每个级别的精度和召回分数,并绘制在 ROC 曲线上。AUC 以通常的方式使用。
该方法在将预测与二进制类匹配时考虑了概率的连续性。使用此评估方法的问题示例:https ://pan.webis.de/clef15/pan15-web/author-identification.html
我以前的项目中也有同样的案例。我更喜欢自定义解决方案:
第一:你有不平衡的类数据集,尝试使用SMOTE或其他上/下采样技术。在那之后(或不这样做)你应该专注于你的预测成本。
例如,如果您有一个工厂的警报系统,并且您创建了一个将停止生产的警报,其成本为 100 万美元,并且不创建信号及其 FN,并且成本为 1 亿美元,那么您应该整合您的错误预测和真实模型评估的预测成本。
您应该使用成本编写自定义网格搜索,并使用不同的阈值(基于predict_proba)调整参数。
如果您有一个平衡的类数据集,我会建议auc-roc然后计算成本,但在您的情况下,您必须优先考虑成本。
我希望它清楚。
其它你可能感兴趣的问题