Я дивлюся на pybrain для отримання тривог монітора сервера та визначення першопричини проблеми. Я задоволений навчанням цього методу під контрольованим навчанням та курінгом наборів даних про навчання. Дані структуровані приблизно так:
- Тип сервера A №1
- Сигналізація типу 1
- Сигналізація типу 2
- Тип сервера A №2
- Сигналізація типу 1
- Сигналізація типу 2
- Тип сервера B №1
- Сигналізація типу 99
- Сигналізація типу 2
Отже, є n серверів, з x тривогами, які можуть бути UP
або DOWN
. І те, n
і інше x
є змінним.
Якщо сервер A1 має аварійний сигнал 1 & 2 , як DOWN
, то можна сказати , що сервіс вниз на цьому сервері , і є причиною проблеми.
Якщо сигнал тривоги 1 не працює на всіх серверах, то можна сказати, що причиною є послуга a .
Можливо, існує декілька варіантів причини, тому пряма класифікація не здається доцільною.
Я також хотів би зв’язати пізніші джерела даних до мережі. Наприклад, лише сценарії, які надають доступ до зовнішньої служби.
Усі відповідні сигнали тривоги можуть не спрацьовувати відразу через перевірку серійної служби, тому вона може починатись з одного сервера, а потім через 5 хвилин після виходу з іншого сервера.
Я намагаюся спочатку зробити деякі основні речі:
from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
INPUTS = 2
OUTPUTS = 1
# Build network
# 2 inputs, 3 hidden, 1 output neurons
net = buildNetwork(INPUTS, 3, OUTPUTS)
# Build dataset
# Dataset with 2 inputs and 1 output
ds = SupervisedDataSet(INPUTS, OUTPUTS)
# Add one sample, iterable of inputs and iterable of outputs
ds.addSample((0, 0), (0,))
# Train the network with the dataset
trainer = BackpropTrainer(net, ds)
# Train 1000 epochs
for x in xrange(10):
trainer.train()
# Train infinite epochs until the error rate is low
trainer.trainUntilConvergence()
# Run an input over the network
result = net.activate([2, 1])
Але я [м маю важке відображення змінних номерів сигналів тривоги до статичних чисел входів. Наприклад, якщо ми додамо сигнал до сервера або додамо сервер, всю мережу потрібно відновити. Якщо це щось, що потрібно зробити, я можу це зробити, але хочу знати, чи є кращий спосіб.
Ще один варіант, про який я намагаюся придумати, - це мати різну мережу для кожного типу сервера, але я не бачу, як я можу зробити висновок на рівні навколишнього середовища, оскільки це буде просто робити оцінки на одному хості, а не на всі господарі одразу.
Який тип алгоритму я повинен використовувати і як я зіставити набір даних, щоб зробити висновки, що стосуються навколишнього середовища в цілому із змінними введеннями?