Алгоритм Негативного Відбору
Свайпніть щоб показати меню
Алгоритм негативного відбору натхненний біологічною імунною системою, яка розрізняє своє та чуже. Т-лімфоцити, що реагують на своє, видаляються, залишаючи лише ті, які здатні розпізнавати чужорідні об'єкти. Алгоритм визначає своє (нормальні дані), генерує детектори, які не збігаються зі своїм, і використовує їх для виявлення аномалій.
Процес включає три етапи:
- Генерація репрезентативної вибірки "своїх" зразків для фіксації нормальної поведінки системи;
- Створення великої кількості випадкових детекторів;
- Видалення детекторів, що збігаються зі своїм, залишаючи активні детектори, які сигналізують про аномалії при збігу з новими даними.
12345678910111213141516171819202122232425262728293031323334import random def generate_random_detector(length): """Generate a random binary string detector of given length.""" return ''.join(random.choice('01') for _ in range(length)) def match(detector, self_set, r): """ Returns True if detector matches any string in self_set with at least r contiguous matching bits. """ for self_str in self_set: for i in range(len(self_str) - r + 1): if detector[i:i+r] == self_str[i:i+r]: return True return False def negative_selection(self_set, num_detectors, length, r): """ Generate detectors that do not match any self string with at least r contiguous matching bits. """ detectors = [] while len(detectors) < num_detectors: detector = generate_random_detector(length) if not match(detector, self_set, r): detectors.append(detector) return detectors # Example usage: self_set = ['11001', '10011', '11100'] detectors = negative_selection(self_set, num_detectors=5, length=5, r=3) print("Generated detectors:", detectors)
Переваги та обмеження алгоритму негативного відбору
Алгоритм негативного відбору забезпечує простий метод виявлення аномалій, натхненний імунною системою. Основні переваги:
- Можливість виявлення невідомих аномалій шляхом фокусування на даних поза множиною self;
- Відсутність необхідності у попередньому знанні аномальних шаблонів, потрібне лише чітке визначення self.
Обмеження:
- Генерація детекторів сповільнюється зі збільшенням множини self;
- Менша ефективність для багатовимірних або неперервних даних через розріджене покриття non-self;
- Можливість хибнопозитивних або хибнонегативних результатів, якщо множина self не є повністю репрезентативною або детектори визначені некоректно.
Незважаючи на ці проблеми, алгоритм негативного відбору є ключовою ідеєю в штучних імунних системах і надійному виявленні аномалій.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат