Алгоритм Негативного Відбору
Алгоритм негативного відбору натхненний біологічною імунною системою, яка розрізняє своє та чуже. Т-лімфоцити, що реагують на своє, видаляються, залишаючи лише ті, які здатні розпізнавати чужорідні об'єкти. Алгоритм визначає своє (нормальні дані), генерує детектори, які не збігаються зі своїм, і використовує їх для виявлення аномалій.
Процес включає три етапи:
- Генерація репрезентативної вибірки "своїх" зразків для фіксації нормальної поведінки системи;
- Створення великої кількості випадкових детекторів;
- Видалення детекторів, що збігаються зі своїм, залишаючи активні детектори, які сигналізують про аномалії при збігу з новими даними.
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 не є повністю репрезентативною або детектори визначені некоректно.
Незважаючи на ці проблеми, алгоритм негативного відбору є ключовою ідеєю в штучних імунних системах і надійному виявленні аномалій.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 6.25
Алгоритм Негативного Відбору
Свайпніть щоб показати меню
Алгоритм негативного відбору натхненний біологічною імунною системою, яка розрізняє своє та чуже. Т-лімфоцити, що реагують на своє, видаляються, залишаючи лише ті, які здатні розпізнавати чужорідні об'єкти. Алгоритм визначає своє (нормальні дані), генерує детектори, які не збігаються зі своїм, і використовує їх для виявлення аномалій.
Процес включає три етапи:
- Генерація репрезентативної вибірки "своїх" зразків для фіксації нормальної поведінки системи;
- Створення великої кількості випадкових детекторів;
- Видалення детекторів, що збігаються зі своїм, залишаючи активні детектори, які сигналізують про аномалії при збігу з новими даними.
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 не є повністю репрезентативною або детектори визначені некоректно.
Незважаючи на ці проблеми, алгоритм негативного відбору є ключовою ідеєю в штучних імунних системах і надійному виявленні аномалій.
Дякуємо за ваш відгук!