Algorithm 1: One-Class Loss |
Input: Training set, # Normal data Evaluating set, # Normal data and Unnormal data = 1:1 Output: Normal label, Unnormal label Process: #step 1: Bi-GRU AE train model = Bi-GRU AE) # init model model.fit(TrainData, split = 0.2, batchsize, epoch) PredictData = model.predict(TrainData) Loss = abs(TrainData-PredictData)#absolute value Loss = sort(Loss) Loss_train = max(Loss) Return Loss_train # step 2: One-Class Classification PredictData = model.preict(TestData) Loss = abs(TrainData-PredictData) Loss = sort(Loss)) Loss = max(Loss) If Loss > Loss_train: Output: Unnormal label Else: Output: Normal label |