Csar Fdez 4 дней назад
Родитель
Сommit
c906195655

+ 7828
- 0
data/2025-01-01_3_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7830
- 0
data/2025-02-03_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7829
- 0
data/2025-02-04_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7637
- 0
data/2025-03-10_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7824
- 0
data/2025-03-11_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7832
- 0
data/2025-03-12_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7832
- 0
data/2025-03-13_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7830
- 0
data/2025-03-14_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7834
- 0
data/2025-03-15_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7835
- 0
data/2025-03-16_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7832
- 0
data/2025-03-17_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 3941
- 0
data/2025-03-21_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7815
- 0
data/2025-03-22_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7820
- 0
data/2025-03-23_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7811
- 0
data/2025-03-24_3_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7812
- 0
data/2025-03-24_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7811
- 0
data/2025-03-25_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7809
- 0
data/2025-03-26_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7817
- 0
data/2025-03-27_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7402
- 0
data/2025-03-28_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 4779
- 0
data/2025-03-31_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7813
- 0
data/2025-04-01_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7817
- 0
data/2025-04-02_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 7815
- 0
data/2025-04-03_5_.csv
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 26
- 17
v2_unsupervised.py Просмотреть файл

22
 
22
 
23
 parser = OptionParser()
23
 parser = OptionParser()
24
 parser.add_option("-t", "--train", dest="train", help="Trains the models (false)", default=False, action="store_true")
24
 parser.add_option("-t", "--train", dest="train", help="Trains the models (false)", default=False, action="store_true")
25
+parser.add_option("-p", "--plot", dest="plot", help="Plot Data (false)", default=False, action="store_true")
25
 parser.add_option("-n", "--timesteps", dest="timesteps", help="TIME STEPS ", default=12)
26
 parser.add_option("-n", "--timesteps", dest="timesteps", help="TIME STEPS ", default=12)
26
 
27
 
27
 (options, args) = parser.parse_args()
28
 (options, args) = parser.parse_args()
45
         datafiles[j].append([])
46
         datafiles[j].append([])
46
 
47
 
47
 # Freezer, SP=-26
48
 # Freezer, SP=-26
48
-datafiles['5-26'][0]=['2025-01-25_5_','2025-01-26_5_','2025-01-29_5_','2025-01-30_5_','2025-01-31_5_','2025-02-01_5_','2025-02-02_5_']
49
+datafiles['5-26'][0]=['2025-01-25_5_','2025-01-26_5_','2025-01-29_5_','2025-01-30_5_','2025-01-31_5_','2025-02-01_5_','2025-02-02_5_','2025-02-03_5_','2025-02-04_5_']
49
 datafiles['5-26'][1]=['2024-12-11_5_', '2024-12-12_5_','2024-12-13_5_','2024-12-14_5_','2024-12-15_5_']
50
 datafiles['5-26'][1]=['2024-12-11_5_', '2024-12-12_5_','2024-12-13_5_','2024-12-14_5_','2024-12-15_5_']
50
-datafiles['5-26'][2]=['2024-12-18_5_','2024-12-19_5_']
51
+datafiles['5-26'][2]=['2024-12-21_5_','2024-12-22_5_','2024-12-23_5_','2024-12-24_5_','2024-12-25_5_','2024-12-26_5_']
51
 datafiles['5-26'][3]=['2024-12-28_5_','2024-12-29_5_','2024-12-30_5_','2024-12-31_5_','2025-01-01_5_'] 
52
 datafiles['5-26'][3]=['2024-12-28_5_','2024-12-29_5_','2024-12-30_5_','2024-12-31_5_','2025-01-01_5_'] 
52
 datafiles['5-26'][4]=['2025-02-13_5_','2025-02-14_5_','2025-02-15_5_','2025-02-16_5_','2025-02-17_5_','2025-02-18_5_','2025-02-19_5_'] 
53
 datafiles['5-26'][4]=['2025-02-13_5_','2025-02-14_5_','2025-02-15_5_','2025-02-16_5_','2025-02-17_5_','2025-02-18_5_','2025-02-19_5_'] 
53
 
54
 
54
 # Freezer, SP=-18
55
 # Freezer, SP=-18
55
-datafiles['5-18'][0]=['2025-01-21_5_','2025-01-22_5_','2025-01-23_5_',] # no hi son aquestx arxius
56
+datafiles['5-18'][0]=['2025-01-21_5_','2025-01-22_5_','2025-01-23_5_'] # 
57
+datafiles['5-18'][1]=['2025-02-17_5_','2025-02-18_5_','2025-02-19_5_'] # 
58
+datafiles['5-18'][2]=['2025-03-10_5_','2025-03-11_5_','2025-03-12_5_'] # 
59
+datafiles['5-18'][3]=['2025-01-04_5_','2025-01-05_5_','2025-01-06_5_','2025-01-07_5_'] # 
60
+datafiles['5-18'][4]=['2025-04-30_5_','2025-05-01_5_','2025-05-02_5_','2025-05-03_5_','2025-05-04_5_','2025-05-05_5_'] #  Faltens aquestes dades 
56
 
61
 
57
 # Freezer, SP=-22
62
 # Freezer, SP=-22
58
 datafiles['5-22'][0]=['2025-03-13_5_','2025-03-14_5_','2025-03-15_5_','2025-03-16_5_']  
63
 datafiles['5-22'][0]=['2025-03-13_5_','2025-03-14_5_','2025-03-15_5_','2025-03-16_5_']  
59
-datafiles['5-22'][1]=['2025-03-23_5_','2025-03-24_5_','2025-03-25_5_']  # es solapa amb el seguent test 
60
-datafiles['5-22'][2]=[]  
64
+datafiles['5-22'][1]=['2025-03-21_5_','2025-03-22_5_','2025-03-23_5_','2025-03-24_5_','2025-03-25_5_']  #  
65
+datafiles['5-22'][2]=['2025-03-26_5_','2025-03-27_5_','2025-03-28_5_']  
66
+datafiles['5-22'][3]=['2025-03-31_5_','2025-04-01_5_','2025-04-02_5_','2025-04-03_5_']  
67
+datafiles['5-22'][4]=['2025-03-17_5_']  
61
 
68
 
62
 # Refrigerator  0  
69
 # Refrigerator  0  
63
 datafiles['30'][0]=['2025-01-21_3_','2025-01-22_3_','2025-01-23_3_','2025-01-24_3_','2025-01-25_3_','2025-01-26_3_']
70
 datafiles['30'][0]=['2025-01-21_3_','2025-01-22_3_','2025-01-23_3_','2025-01-24_3_','2025-01-25_3_','2025-01-26_3_']
64
 datafiles['30'][1]=['2024-12-11_3_','2024-12-12_3_','2024-12-13_3_','2024-12-14_3_','2024-12-15_3_']
71
 datafiles['30'][1]=['2024-12-11_3_','2024-12-12_3_','2024-12-13_3_','2024-12-14_3_','2024-12-15_3_']
65
 datafiles['30'][2]=['2024-12-18_3_','2024-12-19_3_','2024-12-20_3_']
72
 datafiles['30'][2]=['2024-12-18_3_','2024-12-19_3_','2024-12-20_3_']
66
-datafiles['30'][3]=['2024-12-28_3_','2024-12-29_3_','2024-12-30_3_','2024-12-31_3_']
73
+datafiles['30'][3]=['2024-12-28_3_','2024-12-29_3_','2024-12-30_3_','2024-12-31_3_','2025-01-01_3_']
67
 datafiles['30'][4]=['2025-02-12_3_','2025-02-13_3_','2025-02-14_3_','2025-02-15_3_','2025-02-16_3_','2025-02-17_3_','2025-02-18_3_','2025-02-19_3_']   # es solapa amb ventilador no funcionant. i els dies 20 i 21 no hi son
74
 datafiles['30'][4]=['2025-02-12_3_','2025-02-13_3_','2025-02-14_3_','2025-02-15_3_','2025-02-16_3_','2025-02-17_3_','2025-02-18_3_','2025-02-19_3_']   # es solapa amb ventilador no funcionant. i els dies 20 i 21 no hi son
68
 
75
 
69
 
76
 
71
 datafiles['32'][0]=['2025-03-13_3_','2025-03-14_3_','2025-03-15_3_','2025-03-16_3_']
78
 datafiles['32'][0]=['2025-03-13_3_','2025-03-14_3_','2025-03-15_3_','2025-03-16_3_']
72
 datafiles['32'][1]=['2025-03-10_3_']
79
 datafiles['32'][1]=['2025-03-10_3_']
73
 datafiles['32'][2]=['2025-03-17_3_']
80
 datafiles['32'][2]=['2025-03-17_3_']
74
-datafiles['32'][3]=['2025-03-22_3_','2025-03-23_3_']
81
+datafiles['32'][3]=['2025-03-24_3_','2025-03-25_3_','2025-03-26_3_']
75
 datafiles['32'][4]=['2025-03-27_3_','2025-03-28_3_']
82
 datafiles['32'][4]=['2025-03-27_3_','2025-03-28_3_']
76
 
83
 
77
 
84
 
158
 # Test data is: last 1/3 of data 
165
 # Test data is: last 1/3 of data 
159
 dataTrain=[]
166
 dataTrain=[]
160
 dataTest=[]
167
 dataTest=[]
161
-NumberOfSamplesForTest=300
168
+NumberOfSamplesForTest=0
162
 
169
 
163
 for i in range(NumberOfFailures+1):
170
 for i in range(NumberOfFailures+1):
164
     dataTrain.append(dataframe[i].values[0:int(dataframe[i].shape[0]*2/3),:])
171
     dataTrain.append(dataframe[i].values[0:int(dataframe[i].shape[0]*2/3),:])
188
 
195
 
189
 def plotData():    
196
 def plotData():    
190
     fig, axes = plt.subplots(
197
     fig, axes = plt.subplots(
191
-        nrows=NumberOfFailures+1, ncols=2, figsize=(15, 20), dpi=80, facecolor="w", edgecolor="k",sharex=True
198
+        nrows=NumberOfFailures+1, ncols=NumFeatures, figsize=(15, 20), dpi=80, facecolor="w", edgecolor="k",sharex=True
192
     )
199
     )
193
     for i in range(NumberOfFailures+1):
200
     for i in range(NumberOfFailures+1):
194
-        axes[i][0].plot(np.concatenate((dataTrainNorm[i][:,0],dataTestNorm[i][:,0])),label="Fail "+str(i)+",  feature 0")
195
-        axes[i][1].plot(np.concatenate((dataTrainNorm[i][:,1],dataTestNorm[i][:,1])),label="Fail "+str(i)+",  feature 1")
201
+        for  j in range(NumFeatures):
202
+            axes[i][j].plot(np.concatenate((dataTrainNorm[i][:,j],dataTestNorm[i][:,j])),label="Fail "+str(i)+",  feature 0")
196
     #axes[1].legend()
203
     #axes[1].legend()
197
     #axes[0].set_ylabel(features[0])
204
     #axes[0].set_ylabel(features[0])
198
     #axes[1].set_ylabel(features[1])
205
     #axes[1].set_ylabel(features[1])
199
     plt.show()
206
     plt.show()
200
 
207
 
201
-#plotData()
202
-#exit()
208
+if options.plot:
209
+    plotData()
210
+    exit()
203
 
211
 
204
 def create_sequences(values, time_steps):
212
 def create_sequences(values, time_steps):
205
     output = []
213
     output = []
251
         b=Counter(km.labels_[ranges[i][0]:ranges[i][1]])
259
         b=Counter(km.labels_[ranges[i][0]:ranges[i][1]])
252
         labels.append(b.most_common(1)[0][0])
260
         labels.append(b.most_common(1)[0][0])
253
 
261
 
254
-    print("\n\n\n\LABELS: ",labels,"\n\n")
262
+    print("\n\n\n LABELS: ",labels,"\n\n")
255
 
263
 
256
     NumFeaturesToPlot=len(indexesToPlot)
264
     NumFeaturesToPlot=len(indexesToPlot)
257
     plt.rcParams.update({'font.size': 16})
265
     plt.rcParams.update({'font.size': 16})
336
     Ranges.append([r,r+dataTestNorm[i].shape[0]])
344
     Ranges.append([r,r+dataTestNorm[i].shape[0]])
337
     r+=dataTestNorm[i].shape[0]
345
     r+=dataTestNorm[i].shape[0]
338
 
346
 
339
-X=np.vstack((X,dataTestNorm[0]))  # We add a last segment of no fail data
340
-Ranges.append([r,r+dataTestNorm[0].shape[0]])
347
+#X=np.vstack((X,dataTestNorm[0]))  # We add a last segment of no fail data
348
+#Ranges.append([r,r+dataTestNorm[0].shape[0]])
349
+
341
 Ranges[len(Ranges)-1][1]=Ranges[len(Ranges)-1][1]-timesteps-1
350
 Ranges[len(Ranges)-1][1]=Ranges[len(Ranges)-1][1]-timesteps-1
342
 
351
 
343
 xtest=create_sequences(X,timesteps)
352
 xtest=create_sequences(X,timesteps)
408
 
417
 
409
 
418
 
410
 km.fit_predict(xtest)
419
 km.fit_predict(xtest)
411
-#anomalyMetric(km.labels_,Ranges)
420
+anomalyMetric(km.labels_,Ranges)
412
 plot(xtest,Ranges)
421
 plot(xtest,Ranges)
413
 
422
 
414
 
423
 

Powered by TurnKey Linux.