Предварительная обработка журнала при обнаружении аномалий

Я попытался реализовать эту работу по обнаружению аномалий неконтролируемых сообщений журнала, но этап предварительной обработки для меня совершенно непонятен.

В этой статье они сказали, что сообщение дополняется до 40 слов, а затем вычисляют частоту слов. Я не мог понять, зачем нужна последовательность заполнения, поскольку частота слов, такая как TF-IDF, будет генерировать результат с размером словаря.

Предлагаемая модель неконтролируемого обнаружения аномалий включает две глубокие сети автоэнкодеров и изолирующий лес. Во-первых, к набору данных применяется предварительная обработка текста, включая токенизацию и замену букв на строчные. Затем предложения дополняются до 40 слов, а предложения, содержащие менее пяти слов, удаляются. Затем вычисляется частота слов и данные перемешиваются. Затем набор данных нормализуется и масштабируется от 0 до 1.

Данные, которые я использовал в этом эксперименте, - это BGL.

Это пример данных. Dataframe

      columns = ['Label','Timestamp','Date','Node','Time','NodeRepeat','Type','Component','Level','Content']

В настоящее время я просто передаю последовательность заполнения непосредственно модели.

      sequences = tokenizer.texts_to_sequences(t1['Content'])
t1_encoded = pad_sequences(sequences, maxlen=40, padding='post')
t1_scaled = scaler.fit_transform(t1_encoded)

На самом деле, автоэнкодер должен применяться перед изолированным лесом, но я пытаюсь использовать только изолирующий лес в качестве одного из вариантов их оценки (а) один изолирующий лес .

      IF = IsolationForest(n_jobs=-1)
IF.fit(t1_encoded)
pred = IF.predict(t3_encoded)

результат ужасен по сравнению с бумажным результатом.

      Accuracy: 89.9065250294299
Precision 0: 0.9007981755986317
Precision 1: 91.01406092594956
Recall 0: 0.12458406270205485
Recall 1: 98.66322950585173

0 ответов

Другие вопросы по тегам