Skip to main content
. 2023 Apr 20;23(8):4141. doi: 10.3390/s23084141
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