我正在研究生产场景中机器故障的行为。为此,我生成随机数据,形成我的不平衡训练集,由分类数据组成,这些数据指示每个子周期中是否存在故障。故障是按指数分布产生的。我有24个特性(Period_1到Period_24),每个特性都包含448个子周期的历史故障信息。此外,我还有三个特征,包括温度、水分和压力(由正态分布产生)。我的目的是根据这些特性来预测下一阶段的故障行为。
我使用了ROC度量,并考虑了处理不平衡数据的几种策略,如过采样、欠采样、ROSE和ADASYN。此外,我试图使用合奏来提高性能。我测试了以下所有模型:梯度增强算法、随机森林、分类和回归树、神经网络、套袋购物车、支持向量机、C5.0、eXtreme梯度增强和k-最近邻。我也试图使用正规化模型,但这些策略都没有奏效。最佳结果是采用"SVMRadial“模型,考虑用玫瑰包装进行重采样。在这种情况下,ROC = 0.7614,敏感性= 0.7639,特异性= 0.6065,敏感性= 0.75,特异性= 0.6914 (后者通过混淆矩阵获得)。然而,在进行预测时,经过训练的模型导致错误预测的概率很高。所以,我想知道这是否是训练模式的问题。还有,有没有人知道如何改进这些结果呢?
任何帮助都将不胜感激。
数据样本:

所选模型的代码:
set.seed(123);
partition <- createDataPartition(data_failures$Period_24, p = 0.8, list = F)
trainingSet <- data_failures[partition,]
testingSet <- data_failures[-partition,]
train.control <- trainControl(method = "repeatedcv", number = 10, repeats = 3, sampling = "rose", classProbs = TRUE, summaryFunction = twoClassSummary)
model_24 <- train(Period_24 ~., data = trainingSet, method = "svmRadial", preProc = "zv", metric = "ROC", trControl = train.control)
print(model_24)
predictions <- predict(model_24, newdata = testingSet)
print(confusionMatrix(predictions, testingSet$Period_24))考虑到插入包,我使用R。
发布于 2020-08-12 00:04:50
如果没有更多的信息,就很难诊断。但基于你提到的,我要指出:
https://datascience.stackexchange.com/questions/80145
复制相似问题