Jaccard Index (Jaccard İndeksi / Benzerliği)

İki küme arasındaki örtüşme oranını kesişim/birleşim formülüyle 0–1 arasında ölçen benzerlik metriği; nesne tespitinde IoU, segmentasyonda mIoU olarak uygulanır.

Jaccard Index (Jaccard Benzerlik Katsayısı), iki küme arasındaki benzerliği sayısal olarak ifade eden istatistiksel bir metriktir. 1901 yılında İsviçreli botanikçi Paul Jaccard tarafından farklı dağ habitatlarındaki bitki örtüsü benzerliğini ölçmek amacıyla önerilmiş; on yıllar sonra bilgisayar bilimi, bilgi getirme ve yapay zeka alanlarına taşınmıştır. Temel formül şudur: J(A, B) = |A ∩ B| / |A ∪ B| — yani iki kümenin kesişiminin boyutu, birleşiminin boyutuna bölünür. Sonuç 0 ile 1 arasında değişir: 0 iki kümenin hiçbir ortak elemanı olmadığını, 1 ise kümelerin birebir aynı olduğunu gösterir. Tamamlayıcısı olan Jaccard Uzaklığı (1 − J) farklılık ölçümü için kullanılır. Yapay zekada en yaygın biçimi nesne tespiti modellerini değerlendirirken kullanılan Intersection over Union (IoU)'dur. Modelin tahmin ettiği sınırlayıcı kutu ile etiketlenmiş gerçek kutu birer küme olarak ele alınır; IoU kesişim alanının birleşim alanına oranıdır. COCO ve PASCAL VOC kıyaslama protokolleri, bir tahmini "doğru" saymak için IoU ≥ 0,5 eşiğini kullanır. Semantik segmentasyonda her sınıf için hesaplanan Jaccard değerlerinin ortalaması olan mIoU (Mean Intersection over Union), yöntemleri karşılaştırmada standart metrik hâline gelmiştir. Metin ve veri uygulamalarında belgeler kelime kümelerine dönüştürüldüğünde Jaccard basit biçimde benzerlik ölçer; çoğaltım tespiti ve soru-yanıt eşleştirmede kullanılır. Öneri sistemlerinde kullanıcıların ortak etkileşimde bulunduğu öğeler küme olarak temsil edilir. Büyük ölçekli uygulamalarda MinHash algoritması Jaccard'ı yaklaşık olarak hesaplamak için küçük imzalar üretir; LSH (Locality-Sensitive Hashing) ile birleştirilince milyarlarca belge çiftinde verimli tekilleştirme mümkün hâle gelir. Diğer metriklerle karşılaştırıldığında Sørensen-Dice katsayısı (2|A∩B|/(|A|+|B|)) Jaccard'dan türetilebilir ve küçük segmentlere daha duyarlı olduğu için tıbbi görüntü analizinde tercih edilir. Kosinüs benzerliği vektör yönünü ölçerken frekans bilgisini korur; sürekli ve yüksek boyutlu temsillerde Jaccard'dan üstündür. Ağırlıklı Jaccard ise eleman frekansını hesaba katan çok-küme varyantıdır.

visibility Bilgisayarlı Görüde Kullanımı (IoU)

Bilgisayarlı görüde bu metrik genellikle 'Intersection over Union (IoU)' olarak bilinir. Yapay zekanın bir kedi için çizdiği tahmin kutusu ile, kedinin gerçek sınır kutusu birbiriyle üst üste konur. Kesiştikleri piksel sayısı, toplam kapladıkları piksel sayısına bölünür. Sonuç 1'e (veya %100'e) ne kadar yakınsa, modelin tahmini o kadar başarılıdır.

calculate Hesaplama Örneği

  • check_circle A Kümesi: Müşteri 1'in aldığı ürünler: [Elma, Armut, Muz]
  • check_circle B Kümesi: Müşteri 2'nin aldığı ürünler: [Elma, Çilek, Muz]
  • check_circle Jaccard Sonucu: Kesişim (Elma, Muz) = 2. Birleşim (Elma, Armut, Muz, Çilek) = 4. Jaccard Benzerliği = 2/4 = %50 benzerlik.

Jaccard İndeksinin Hesaplanması ve Varyantları

  • check_circle Temel Formül: J(A, B) = |A ∩ B| / |A ∪ B| Kesişim: iki kümede ortak eleman sayısı. Birleşim: iki kümede toplamda benzersiz eleman sayısı. Aralık: 0 (tamamen farklı) ile 1 (tamamen aynı). Jaccard uzaklığı: 1 - J(A, B) — benzerlik yerine uzaklık ölçüsü.
  • check_circle Metin Uygulaması: Token Örtüşmesi: Cümle token'lara bölünür; iki cümle küme olarak karşılaştırılır. 'kedi ev' vs 'kedi köpek': J = {kedi}/{kedi,ev,köpek} = 1/3 ≈ 0.33. n-gram varyant: tek kelime yerine n kelimelik diziler karşılaştırılır; kelime sırası bilgisi kısmen korunur.
  • check_circle MinHash ile Ölçeklendirme: Büyük koleksiyonlarda tam Jaccard hesabı pahalı. MinHash: küçük imzalarla Jaccard benzerliğini yaklaşık hesaplar. LSH (Locality Sensitive Hashing): benzer dokümanlar aynı bucket'a düşer; milyarlarca belge çiftinde verimli çoğaltım tespiti.

Jaccard İndeksinin AI ve NLP Uygulamaları

Metin çoğaltım tespiti: iki belge yüksek Jaccard benzerliğine sahipse aynı içerik. Nesne tespiti değerlendirme: IoU (Intersection over Union) Jaccard'ın görüntü versiyonu; tahmin edilen kutu ile gerçek kutu örtüşmesi. ROUGE değerlendirme: metin özetleme kalitesi — ROUGE-N n-gram örtüşmesini Recall/Precision/F1 olarak ölçer; Jaccard ile yakın ilişkili. BM25 karşılaştırma: BM25 terim frekansı ve IDF kullanır; Jaccard yalnızca varlık/yokluk — ikisi farklı güçler. Kosinüs benzerliği ile fark: kosinüs vektör yönünü ölçer; Jaccard küme örtüşmesini ölçer — ikisi farklı bilgi yakalar.

quiz Sıkça Sorulan Sorular (FAQ)

  • check_circle Jaccard ile Kosinüs Benzerliği (Cosine Similarity) farkı nedir?: Kosinüs benzerliği genellikle vektörlerin yönünü ölçmek için kullanılırken, Jaccard Index kategorik kümelerin birebir eşleşme oranlarını (hangi ürünleri ortak aldılar) ölçmekte daha iyidir.
  • check_circle Jaccard Uzaklığı (Distance) nedir?: Jaccard indeksinin 1'den çıkarılmış halidir (1 - Jaccard Index). İki kümenin ne kadar farklı olduğunu ölçer.
  • check_circle Jaccard indeksi nedir?: İki küme arasındaki benzerliği ölçen metriktir: kesişim boyutu / birleşim boyutu. NLP'de iki metin arasındaki kelime örtüşmesini ve görüntü işlemede kutu örtüşmesini (IoU) ölçmek için kullanılır.
  • check_circle Jaccard ile kosinüs benzerliği arasındaki fark nedir?: Jaccard: küme üyeliği — kelime var mı yok mu? Frekans bilgisi kaybolur. Kosinüs: vektör yönü — TF-IDF veya embedding ağırlıkları kullanır; frekansa duyarlı. Kısa metin ve binary görev için Jaccard; semantik anlam için kosinüs tercih edilir.
  • check_circle IoU ile Jaccard aynı şey midir?: Evet, matematikte özdeş: J(A,B) = IoU(A,B) = |A∩B|/|A∪B|. Görüntü işlemede bounding box üzerinden hesaplanırken 'IoU' terimi kullanılır. COCO ve Pascal VOC: IoU > 0.5 eşiğini doğru tespit kabul eder.
  • check_circle Jaccard Python'da nasıl hesaplanır?: A = set(doc1.split()); B = set(doc2.split()). jaccard = len(A & B) / len(A | B). sklearn: from sklearn.metrics import jaccard_score (ikili vektörler için). Görüntü IoU: torchvision.ops.box_iou veya np hesaplaması.