Jump to content
  • entries
    55
  • comments
    2
  • views
    281

Negatif Seçim Algoritması (Negative Selection Algorithm)


Doğuhan ELMA

75 views

Negatif Seçim Algoritması (Negative Selection Algorithm), yapay bağışıklık sistemlerinin bir parçasıdır ve bir sistemdeki normal dışı (anomali) davranışları veya durumları tespit etmek için kullanılır. Doğal bağışıklık sistemlerinin "öz" (self) ve "öz olmayan" (non-self) kavramlarını taklit eder. 

Bu algoritmanın genel prensipleri şunlardır:

1. Detektörlerin Oluşturulması (İnitialization): Algoritma, rastgele oluşturulan bir dizi detektör (çözüm adayı) ile başlar.

2. Eğitim (Training): Eğitim seti, normal (öz) davranışları veya durumları temsil eder. Detektörler, eğitim setindeki örneklerle eşleşmezse "öz olmayan" olarak kabul edilir ve sisteme dahil edilirler. Eğer bir detektör, eğitim setindeki bir örnekle eşleşirse, o detektör reddedilir ve yeni bir detektör oluşturulur.

3. Test (Testing): Test aşamasında, detektörler yeni veriler (test seti) üzerinde kullanılır. Eğer bir detektör, bir test verisi ile eşleşirse, bu verinin normal dışı (anomali) olduğu kabul edilir. 

Bu algoritma, genellikle anormallik (anomali) tespiti, hata tespiti ve güvenlik uygulamaları gibi alanlarda kullanılır. Başarısı, detektörlerin doğru şekilde oluşturulması ve uygun bir eşleşme kriterinin seçilmesine bağlıdır. 

Negatif Seçim Algoritması, normal (öz) ve normal dışı (öz olmayan) durumları ayırt etmek için kullanılabilen birçok yapay bağışıklık algoritmasından biridir. Bu algoritmanın en büyük avantajlarından biri, normal dışı durumların belirli bir modeline veya örneğine ihtiyaç duymamasıdır. Bu nedenle, bilinmeyen ve beklenmeyen anormalliklerin tespiti için özellikle yararlıdır.

Negatif Seçim Algoritması bir tür anomali tespit yöntemidir. Örneğin, metinde belirli bir dizi karakteri tespit etmek için kullanabiliriz. Algoritma aşağıdaki şekildedir:

import random
import string

# Karakter kümesi ve detektör boyutu
charset = string.ascii_lowercase + string.digits
detector_size = 10

# Rastgele bir detektör oluşturma
def generate_detector():
    return ''.join(random.choice(charset) for _ in range(detector_size))

# Öz kümesini oluşturma
self_set = {'abcdefghij', 'klmnopqrst', 'uvwxyz0123', '4567890abc', 'defghijklm'}

# Detektörlerin kümesini oluşturma
detectors = set()
while len(detectors) < 100:
    detector = generate_detector()
    if not any(detector in s for s in self_set):
        detectors.add(detector)

# Anomali tespiti
def detect_anomaly(s):
    return any(detector in s for detector in detectors)

# Test
print(detect_anomaly('uvwxyz0123'))  # False
print(detect_anomaly('uvwxyz012x'))  # True

Bu kod örneğinde, generate_detector fonksiyonu rastgele bir detektör oluşturur. Daha sonra, öz kümesi (normal durumları temsil eden) ve detektörler kümesi (anormallikleri tespit etmek için kullanılan) oluşturulur. Detektörler kümesi, rastgele oluşturulan ve öz kümesindeki hiçbir örnekle eşleşmeyen detektörlerden oluşur.

detect_anomaly fonksiyonu, bir girdinin anomali olup olmadığını kontrol eder. Eğer girdi, detektörler kümesindeki herhangi bir detektörle eşleşirse, bu girdinin bir anomali olduğu kabul edilir. Bu durumda, fonksiyon True döndürür; aksi takdirde, False döndürür.

Son olarak, kod iki test durumuyla sona erer. İlk durum, öz kümesindeki bir örnektir ve detect_anomaly fonksiyonu False döndürmelidir. İkinci durum, öz kümesinde olmayan bir örnektir ve detect_anomaly fonksiyonu True döndürmelidir.

Bu basit örnekte, detektörler ve öz kümesi manuel olarak oluşturulmuştur ve sadece metin dize tespiti için kullanılmıştır. Ancak, Negatif Seçim Algoritması'nın genel prensipleri, çok daha karmaşık durumlar ve farklı veri türleri için de geçerlidir. Algoritmanın başarısı, uygun bir eşleşme kriterinin seçilmesine ve detektörlerin doğru şekilde oluşturulmasına bağlıdır.

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...