|
|
@@ -66,6 +66,7 @@ datafiles[4]=['2024-12-28_5_','2024-12-29_5_','2024-12-30_5_','2024-12-31_5_','2
|
|
66
|
66
|
|
|
67
|
67
|
features=['r1 s1','r1 s4','r1 s5','pa1 apiii']
|
|
68
|
68
|
features=['r1 s1','r1 s4','r1 s5']
|
|
|
69
|
+features=['r1 s1','r1 s5']
|
|
69
|
70
|
featureNames={}
|
|
70
|
71
|
featureNames['r1 s1']='$T_{evap}$'
|
|
71
|
72
|
featureNames['r1 s4']='$T_{cond}$'
|
|
|
@@ -305,8 +306,8 @@ else:
|
|
305
|
306
|
|
|
306
|
307
|
# Let's plot some features
|
|
307
|
308
|
|
|
308
|
|
-colorline=['violet','lightcoral','cyan','lime','grey']
|
|
309
|
|
-colordot=['darkviolet','red','blue','green','black']
|
|
|
309
|
+colorline=['black','violet','lightcoral','cyan','lime','grey']
|
|
|
310
|
+colordot=['grey','darkviolet','red','blue','green','black']
|
|
310
|
311
|
|
|
311
|
312
|
#featuresToPlot=['r1 s1','r1 s2','r1 s3','pa1 apiii']
|
|
312
|
313
|
featuresToPlot=features
|
|
|
@@ -332,13 +333,17 @@ for i in range(len(datalist)):
|
|
332
|
333
|
|
|
333
|
334
|
|
|
334
|
335
|
x_test_predict=[]
|
|
335
|
|
-for m in range(1,NumberOfFailures+1):
|
|
|
336
|
+for m in range(NumberOfFailures+1):
|
|
336
|
337
|
x_test_predict.append(model[m].predict(x_test))
|
|
337
|
338
|
|
|
338
|
339
|
x_test_predict=np.array((x_test_predict))
|
|
|
340
|
+test_mae_loss =[]
|
|
|
341
|
+for m in range(NumberOfFailures+1):
|
|
|
342
|
+ test_mae_loss.append(np.mean(np.abs(x_test_predict[m,:,:,:] - x_test), axis=1))
|
|
|
343
|
+test_mae_loss=np.array((test_mae_loss))
|
|
|
344
|
+test_mae_loss_average=np.mean(test_mae_loss,axis=2) # average over features
|
|
|
345
|
+classes=np.argmin(test_mae_loss_average,axis=0)
|
|
339
|
346
|
|
|
340
|
|
-print(x_test_predict)
|
|
341
|
|
-exit(0)
|
|
342
|
347
|
|
|
343
|
348
|
def plotData4():
|
|
344
|
349
|
NumFeaturesToPlot=len(indexesToPlot)
|
|
|
@@ -347,27 +352,22 @@ def plotData4():
|
|
347
|
352
|
nrows=NumFeaturesToPlot, ncols=1, figsize=(15, 10), dpi=80, facecolor="w", edgecolor="k",sharex=True
|
|
348
|
353
|
)
|
|
349
|
354
|
for i in range(NumFeaturesToPlot):
|
|
350
|
|
-
|
|
351
|
|
-
|
|
352
|
355
|
init=0
|
|
353
|
356
|
end=testRanges[0][1]
|
|
354
|
|
- axes[i].plot(range(init,end),x_test[testRanges[0][0]:testRanges[0][1],0,indexesToPlot[i]]*stdevs[i]+means[i],label="No fail", color='black')
|
|
355
|
|
- init=end
|
|
356
|
|
- end+=(testRanges[1][1]-testRanges[1][0])
|
|
357
|
|
- for j in range(1,NumberOfFailures+1):
|
|
358
|
|
- axes[i].plot(range(init,end),x_test[testRanges[j][0]:testRanges[j][1],0,indexesToPlot[i]]*stdevs[i]+means[i],label="Fail type "+str(j), color=colorline[j-1],linewidth=1)
|
|
|
357
|
+ for j in range(NumberOfFailures+1):
|
|
|
358
|
+ axes[i].plot(range(init,end),x_test[testRanges[j][0]:testRanges[j][1],0,indexesToPlot[i]]*stdevs[i]+means[i],label="Class "+str(j), color=colorline[j],linewidth=1)
|
|
359
|
359
|
if j<NumberOfFailures:
|
|
360
|
360
|
init=end
|
|
361
|
361
|
end+=(testRanges[j+1][1]-testRanges[j+1][0])
|
|
362
|
362
|
|
|
363
|
|
- for j in range(NumberOfFailures):
|
|
|
363
|
+ for j in range(NumberOfFailures+1):
|
|
364
|
364
|
x=[]
|
|
365
|
365
|
y=[]
|
|
366
|
|
- for k in anomalous_data_type[j]:
|
|
367
|
|
- if (k+int(options.timesteps))<x_test.shape[0]:
|
|
368
|
|
- x.append(k+int(options.timesteps))
|
|
369
|
|
- y.append(x_test[k+int(options.timesteps),0,indexesToPlot[i]]*stdevs[i]+means[i])
|
|
370
|
|
- axes[i].plot(x,y ,color=colordot[j],marker='.',linewidth=0,label="Fail detect type "+str(j+1) )
|
|
|
366
|
+ for k in range(len(classes)):
|
|
|
367
|
+ if classes[k]==j:
|
|
|
368
|
+ x.append(k)
|
|
|
369
|
+ y.append(x_test[k,0,indexesToPlot[i]]*stdevs[i]+means[i])
|
|
|
370
|
+ axes[i].plot(x,y ,color=colordot[j],marker='.',markersize=10,linewidth=0,label="Fail detect type "+str(j) )
|
|
371
|
371
|
|
|
372
|
372
|
|
|
373
|
373
|
|