Yöntemler · Uzaklık
HAMMING UZAKLIĞI (Hamming Distance)
Hamming uzaklığı iki eş uzunluklu diziyi karşılaştırır ve yalnız kaç konumda tamamen farklı olduklarını sayar; farkın büyüklüğüyle ilgilenmez.
Temel yöntemin veri türü: Kesin (Classical)
Yöntem Nedir?
Hamming uzaklığı iki seçeneği ya da iki durumu satır satır karşılaştırıp uyuşmayan hücreleri sayan bir uzaklık ölçütüdür. Girdisi iki eş uzunluklu vektördür, çıktısı tek bir sayıdır: kaç konumda değerler birbirinden farklıdır. Kendi başına bir sıralama yöntemi değildir; TOPSIS, VIKOR, MABAC gibi sıralama yöntemlerinin içinde "seçenek ideale ne kadar uzak" sorusunu cevaplayan bir yapı taşıdır. Richard Hamming tarafından 1950'de, hatalı bit sayısını saymak için haberleşme mühendisliğinde tanımlanmıştır; kaynağı iletişim kodlarıdır, karar analizi değildir.
Klasik hâliyle ikili (0/1) ya da kategorik verilerde çalışır: bir üründe bir özelliğin var olup olmadığı, bir adayın bir şartı karşılayıp karşılamadığı gibi. Sayısal (sürekli) verilerde doğrudan kullanılmaz; önce bir eşik konup veriler "karşılıyor / karşılamıyor" biçiminde ikiye ayrılmalıdır. Bu dönüştürme kararı Hamming uzaklığının en kırılgan noktasıdır ve aşağıda ayrıca ele alınır.
Yöntemin Felsefesi
Hamming uzaklığının arkasındaki soru basittir: iki şey kaç yerde birbirinden ayrılıyor? Bir farkın küçük mü büyük mü olduğunu sormaz; yalnız fark var mı yok mu diye bakar. Bu yüzden Öklid ya da Manhattan gibi büyüklük ölçen uzaklıklardan temelde farklıdır: 1 puanlık bir sapma ile 50 puanlık bir sapma, ikisi de "eşik altında" sayıldığı sürece Hamming'e göre eşittir.
Bu seçimin bir felsefi sonucu vardır. Hamming uzaklığı nitelik değişimini sayar, nicelik değişimini saymaz. Bir karar vericinin sorusu "kaç şartı karşılamıyor" ise (bir tedarikçi kaç zorunlu belgeyi eksik bırakmış, bir aday kaç ölçütte eşiğin altında kalmış) Hamming doğru soruya cevap verir. Soru "ne kadar eksik kalmış" ise (eşiğin ne kadar altında, ne kadar gecikmeli) Hamming yanlış aracı: bu durumda Manhattan ya da Öklid uzaklığı gerekir.
Yöntem Nasıl Çalışır?
Hesap tek bir adımdan oluşur.
Tek adım, konum konum karşılaştırma. İki vektör aynı sırada yan yana konur; her konumda iki değer birbirine eşit mi diye bakılır. Eşit değilse bir sayılır, eşitse sıfır. Bu sayılar toplanır ve sonuç Hamming uzaklığıdır. Beş kriterden ikisinde uyuşmazlık varsa uzaklık 2'dir; sıfır kriterde uyuşmazlık varsa 0'dır, yani iki durum birebir aynıdır.
Veri sürekli (kesin sayı) ise bu adımdan önce bir eşik (epsilon) tanımlanır: her kriter için "kabul edilir" sayılan bir sınır belirlenir, değerler bu sınırın üstünde mi altında mı diye ikiye ayrılır, sonra Hamming uzaklığı bu ikili tabloya uygulanır. Eşiğin nereye konduğu sonucu doğrudan değiştirir; bu kart bunu ikinci vakada gösterir.
Adımın formülü ve ara tabloları DecisionMind'daki yöntem sayfasında verilir; bu kart formül taşımaz.
Çıktı Nasıl Yorumlanır?
Hamming uzaklığı bir tam sayıdır ve "kaç konumda uyuşmazlık var" demektir; başka bir şey söylemez. 2 değeri "yüzde 2 farklı" ya da "iki durum yüzde 98 aynı" anlamına gelmez; beş kriterlik bir tabloda 2 ile elli kriterlik bir tabloda 2, aynı sayı olsa da aynı ölçüde benzerlik değildir. Uzaklık yalnız aynı kriter sayısıyla kurulmuş karşılaştırmalar arasında anlamlıdır.
Sıfır olması "birebir aynı" demektir, en büyük değer (kriter sayısı kadar) ise "hiçbir konumda uyuşmuyor" demektir. Aradaki her sayı sadece bir sayımdır, ağırlıklandırılmamıştır; beş kriterden ikisi çok önemli, üçü önemsiz olsa da Hamming ikisini eşit sayar. Ağırlıklandırma isteniyorsa bu, Hamming'in dışında, ev sahibi yöntemin (örneğin ağırlıklı bir toplulaştırmanın) işidir.
Bu nedenle:
"Hamming uzaklığı 2, yani bu iki seçenek yüzde seksen benzer"
yerine:
"Bu beş kriterin ikisinde uyuşmazlık var; hangi ikisinde olduğu ve bu kriterlerin ne kadar önemli olduğu ayrıca belirtilmelidir"
biçiminde yazmak doğrudur.
Veri Türü ve Girdiler
Hamming uzaklığı kesin (crisp) veriyle çalışır ve klasik tanımı ikili ya da kategorik veri içindir. DM3'te bu adla yalnız temel Hamming üyesi bulunur, ayrı bir uzantısı yoktur. Ancak Hamming tipi mutlak fark toplama fikri, bulanık ve sezgisel (intuitionistic) küme uzaklıklarının içinde bir alt adım olarak sık kullanılır: bir üyelik derecesi çiftinin (örneğin bir sezgisel bulanık sayının üyelik, karşıt üyelik ve tereddüt bileşenlerinin) mutlak farkları toplanıp normalize edilir; bu, kurucu bulanık/sezgisel TOPSIS ve VIKOR uzantılarının literatüründe "Hamming tipi uzaklık" adıyla geçer (Szmidt ve Kacprzyk, 2000). Bu, DM3'te ayrı bir manifest üyesi değildir; ilgili bulanık veri türü kartlarında o yöntemin kendi adımı olarak anlatılır.
Elinizde şunlar olmalı: iki eş uzunluklu vektör (iki seçenek, ya da bir seçenek ile bir ideal profil), her konumda ikili ya da kategorik bir değer. Veri sürekliyse önce her kriter için gerekçeli bir eşik belirlenmelidir; eşiksiz Hamming uygulaması tanımsızdır. En az iki kriter, iki seçenek yeterlidir; üst sınır yoktur, üç ile on iki kriter arası rahat okunur bir tablo verir. Hamming ağırlık üretmez, ağırlık istemez; girdi değerleri ev sahibi yöntemde zaten normalize edilmiş ya da eşiklenmiş olarak gelir.
Ne Zaman Kullanılır, Ne Zaman Kullanılmaz?
Kriterleriniz doğası gereği ikili ya da kategorikse (sertifika var/yok, şart karşılanıyor/karşılanmıyor, özellik mevcut/değil) Hamming uygun bir seçimdir. Sürekli veriyi bilinçli ve gerekçeli bir eşikle ikiye ayırdığınızda da kullanılabilir; ama bu eşik raporda açıkça yazılmalı ve sonucu değiştirebileceği kabul edilmelidir.
Kullanılmaması gereken durum, sapmanın büyüklüğünün kendisinin karar için önemli olduğu durumdur. Bir tedarikçinin teslimatı bir gün mü yüz gün mü gecikti sorusu Hamming'e göre aynı cevabı verir (ikisi de "gecikti"); bu ayrım önemliyse Manhattan ya da Öklid uzaklığı gerekir. Kriterler arasında güçlü bir ilişki (korelasyon) varsa ve bu ilişkinin hesaba katılması isteniyorsa Mahalanobis uzaklığı daha uygundur.
Kriterler ikili/kategorik, "kaç şart karşılanmıyor" sorusu → Hamming
Sapmanın büyüklüğü önemli, kriterler bağımsız → Manhattan ya da Öklid
Kriterler birbiriyle ilişkili (korelasyonlu) → Mahalanobis
Bulanık ya da sezgisel üyelik bileşenleri arasında mutlak fark → ilgili veri türünün Hamming tipi uzaklık adımı
Tek bir p parametresiyle L1'den L∞'a geçiş gerekiyor → Minkowski
Güçlü Yanları
Hamming uzaklığının en büyük üstünlüğü basitliğidir: hesap tek bir sayma işlemidir, karar vericiye "kaç noktada uyuşmuyorlar" diye dosdoğru anlatılabilir. İkili ve kategorik veride başka hiçbir varsayım gerektirmez; ölçek, birim ya da dağılım sorunu yoktur, çünkü karşılaştırma zaten uyuşma/uyuşmama düzeyindedir. Hesap yükü kriter ve seçenek sayısı büyüdükçe doğrusal artar, büyük tablolarda bile hızlı çalışır. Denetim ve uygunluk listeleri gibi doğası gereği ikili olan verilerde ev sahibi yöntemin uzaklık adımını doğrudan ve yorumsuz biçimde besler.
Zayıf Yanları
Sınırlılıkları tanımından gelir. Birincisi, büyüklüğü tamamen yok sayar; bir kriterde ufak bir sapma ile büyük bir sapma aynı "bir" sayılır, bu da bilgi kaybıdır (Deza ve Deza, 2009). İkincisi, sürekli veride bir eşik gerektirir ve bu eşik seçimi keyfidir; eşik birkaç birim kaydırıldığında hangi seçeneğin "karşıladığı" değişebilir, dolayısıyla sonuç da değişebilir. Üçüncüsü, kriterleri eşit ağırlıklı sayar; önemli bir şartın karşılanmaması ile önemsiz bir şartın karşılanmaması aynı bire katkı yapar. Dördüncüsü, farklı mesafe ölçütleri aynı tabloya farklı sıra verebilir (Chen ve Tsao, 2007); Hamming seçmek de bir karardır ve raporda gerekçelenmelidir. Beşincisi, kesin verinin kategorileştirilmesi her zaman bilgi kaybettirir; ne kadar bilgi kaybedildiği eşiğin konumuna bağlıdır.
Sık Yapılan Hatalar
En yaygın hata, eşiği sonuçtan geriye doğru seçmektir: önce hangi seçeneğin öne çıkmasını istediğine karar verip sonra o sonucu veren eşiği bulmaktır. Eşik veriden ya da bir standarttan önce, sonuçtan bağımsız olarak belirlenmelidir.
İkinci hata, Hamming uzaklığını sürekli veriye eşiksiz uygulamaktır; bu durumda "eşit mi değil mi" sorusunun cevabı belirsizdir ve hesap tanımsız hâle gelir. Üçüncü hata, uzaklık sayısını yüzdeye çevirip "yüzde şu kadar benzer" demektir; Hamming uzaklığı bir sayımdır, oran değildir. Dördüncü hata, kriterlerin önem farkını yok sayıp beş kriterden ikisinin uyuşmamasını, hangi ikisi olduğuna bakmadan yorumlamaktır. Beşinci hata, bulanık ya da sezgisel veri üzerinde çalışırken üyelik bileşenlerini önce durulaştırıp sonra Hamming uygulamaktır; bu, bileşenler arasındaki farkı gizler ve yöntemin amacını boşa çıkarır.
Temel ilke şudur:
Hamming uzaklığı yalnız "kaç yerde farklılar" sorusuna cevap verir; "ne kadar farklılar" sorusu soruluyorsa yanlış araç seçilmiştir.
Vakalar
Her vaka bir karşılaştırma tablosuyla başlar, Hamming uzaklığının bu tabloya ne yaptığını kelimeyle anlatır ve sonucun nasıl okunacağını gösterir. Birinci vaka DM3'ün kendi doğrulama örneğidir; sayılar Python ile yeniden hesaplanıp doğrulanmıştır. Diğer vakalar öğretici kurgudur.
1. Doğrulama: İki ikili durumun karşılaştırılması (DM3 doğrulama örneği)
DM3'ün Hamming uzaklığı motoru, dört maddelik iki ikili durumu (D1-D4) karşılaştırır: a = (1, 0, 1, 1) ve b = (0, 0, 1, 0).
| Durum | D1 | D2 | D3 | D4 |
|---|---|---|---|---|
| a | 1 | 0 | 1 | 1 |
| b | 0 | 0 | 1 | 0 |
| Uyuşuyor mu | Hayır | Evet | Evet | Hayır |
Yöntem dört konumu tek tek karşılaştırır: D1'de a=1, b=0, uyuşmuyor; D2'de ikisi de 0, uyuşuyor; D3'te ikisi de 1, uyuşuyor; D4'te a=1, b=0, uyuşmuyor. İki uyuşmazlık sayılır.
Sonuç: Hamming uzaklığı d = 2.
Bu, dört maddenin ikisinde a ile b'nin farklı olduğu, ikisinde aynı olduğu anlamına gelir; hangi maddelerin uyuşmadığı (D1 ve D4), uyuşmazlığın büyüklüğünden daha önemlidir, çünkü Hamming büyüklüğü zaten ölçmez.
Raporda: "a ile b dört maddenin ikisinde (D1, D4) farklıdır; Hamming uzaklığı 2'dir."
Kaynak: Bu örnek DM3'ün Hamming motorunun doğrulama örneğidir, öğretici amaçla kurgulanmıştır; Hamming'in 1950 kaynağı haberleşme kodlarına ilişkindir ve bu tabloyla ilgisi yoktur.
2. Gıda Güvenliği: Paketleme tedarikçisi denetim uyumu
Bir gıda şirketinin tedarik ekibi üç paketleme tedarikçisini (T1, T2, T3) beş denetim maddesinde (HACCP belgesi, soğuk zincir kaydı, alerjen etiketleme, izlenebilirlik yazılımı, yıllık dış denetim) 0-100 arası puanlarla değerlendirmiştir; ideal profil her maddede 100'dür. Ekip, 90 puanın altını "şartı karşılamıyor" saymıştır.
| Tedarikçi | M1 | M2 | M3 | M4 | M5 |
|---|---|---|---|---|---|
| T1 | 89 | 89 | 95 | 98 | 97 |
| T2 | 91 | 92 | 95 | 98 | 30 |
| T3 | 50 | 50 | 50 | 50 | 50 |
| İdeal | 100 | 100 | 100 | 100 | 100 |
Yöntem her tedarikçinin 90 eşiğinin altında kaldığı madde sayısını sayar: T1'de M1 (89) ve M2 (89) eşiğin altındadır, iki uyuşmazlık. T2'de yalnız M5 (30) eşiğin altındadır, tek uyuşmazlık. T3'te beş maddenin beşi de eşiğin altındadır, beş uyuşmazlık.
| Tedarikçi | Hamming uzaklığı (eşik=90) | Sıra |
|---|---|---|
| T2 | 1 | 1 |
| T1 | 2 | 2 |
| T3 | 5 | 3 |
Hamming'e göre T2 en iyisidir, çünkü yalnız bir maddede eşiğin altında kalmıştır. Ama bu okuma yanıltıcıdır: T2'nin tek eksik maddesi M5'te puanı 30'dur, ideal olan 100'den 70 puan uzaktır. T1'in iki eksik maddesindeki (M1, M2) sapma ise ikisinde de yalnız 11 puandır. İdeal noktaya ham puan farklarının kareköküyle (Öklid uzaklığı) bakıldığında T1'in toplam sapması 16,7, T2'ninki 71,2'dir; yani T1 ideale T2'den çok daha yakındır, tam tersi bir sıralama çıkar.
Ekip burada tereddüt eder: Hamming'in "bir eksik" ile "iki eksik" karşılaştırması, M5'teki 70 puanlık uçurumu görmez; eşik mantığı, eşiğin hemen altında kalan küçük bir sapmayla eşiğin çok altında kalan büyük bir sapmayı aynı "bir" sayar. Denetim ekibi yalnız "kaç şart karşılanmıyor" sorusuna cevap arıyorsa Hamming doğrudur; "toplam sapma ne kadar büyük" sorusuna cevap arıyorsa Öklid ya da Manhattan uzaklığı kullanılmalıdır.
Raporda: "90 eşiğine göre T2 yalnız bir maddede karşılamamaktadır (T1 iki, T3 beş); ama T2'nin eksik kaldığı maddedeki sapma (70 puan) T1'in iki eksik maddesindeki toplam sapmadan (22 puan) çok daha büyüktür, bu yüzden sıralama seçilen uzaklık ölçütüne göre değişmektedir."
3. Kütüphanecilik: Dijital arşiv sisteminin standart uyumu
Bir üniversite kütüphanesi iki dijital arşiv sistemini (S1, S2) dört standart uyum puanıyla (0-100) karşılaştırmaktadır; ideal puan her standartta 100'dür.
| Sistem | ST1 | ST2 | ST3 | ST4 |
|---|---|---|---|---|
| S1 | 92 | 88 | 84 | 79 |
| S2 | 86 | 86 | 86 | 86 |
| İdeal | 100 | 100 | 100 | 100 |
Komisyon önce eşiği 85 olarak belirler. Bu eşikte S1, ST3 (84) ve ST4 (79) maddelerinde eşiğin altındadır; iki uyuşmazlık. S2'nin dört puanı da (86) eşiğin üstündedir; sıfır uyuşmazlık. Hamming'e göre S2 birincidir.
Komisyon eşiği 90'a çıkarırsa tablo tersine döner: S1 yalnız ST1'de (92) eşiği geçer, üç maddede (88, 84, 79) altında kalır; S2'nin dört puanı da (86) artık eşiğin altındadır, dört uyuşmazlık. Hamming'e göre bu kez S1 birincidir.
| Eşik | S1 uyuşmazlık | S2 uyuşmazlık | Kazanan |
|---|---|---|---|
| 85 | 2 | 0 | S2 |
| 90 | 3 | 4 | S1 |
Komisyon burada ciddi bir tereddüde düşer: kazananı belirleyen, sistemlerin performansı değil, komisyonun seçtiği eşik sayısıdır. İdeal puana ham Öklid uzaklığıyla bakıldığında S2 (28,0) S1'den (30,1) her koşulda biraz daha yakındır ve bu sıra eşik seçiminden etkilenmez. Hamming ise eşik 85 iken S2'yi, eşik 90 iken S1'i seçmektedir; eşik keyfi biçimde değiştirildiğinde kazanan da değişmektedir.
Raporda: "Eşik seçimi (85 ya da 90) tek başına kazananı değiştirmektedir; ham puanlara Öklid uzaklığıyla bakıldığında S2 her iki eşikte de S1'e göre ideale daha yakındır. Eşik 85 olarak sabitlenmiş ve bu sabitleme denetim standardından, sonuçtan bağımsız olarak yapılmıştır."
4. Yapılmaması Gereken
Gıda güvenliği vakasında T2'nin Hamming uzaklığını (1) "T2 en iyi tedarikçi" diye raporlamak ve M5'teki 70 puanlık sapmayı hiç anmamak birinci yanlıştır; bu, karar vericiyi yanıltır. İkinci yanlış, kütüphanecilik vakasında eşiği önce S1'i kazandıracak biçimde (90) seçip sonra bu seçimi rapora yazmadan sunmaktır; eşik gerekçesiz ve sonuçtan bağımsız olmalıdır. Üçüncü yanlış, Hamming uzaklığı 2 olan bir sonucu "yüzde 60 benzer" diye ifade etmektir; Hamming bir sayımdır, yüzde değildir.
Kaynaklar
Adımın formülü ve DecisionMind'daki uygulaması için yöntem sayfası: decisionmind.app/library/dist-hamming
Hamming, R. W. (1950). Error Detecting and Error Correcting Codes. Bell System Technical Journal, 29(2), 147-160. DOI: 10.1002/j.1538-7305.1950.tb00463.x
Szmidt, E., & Kacprzyk, J. (2000). Distances between intuitionistic fuzzy sets. Fuzzy Sets and Systems, 114(3), 505-518. DOI: 10.1016/s0165-0114(98)00244-9
Chen, T.-Y., & Tsao, C.-Y. (2007). Experimental analysis of the intuitionistic fuzzy TOPSIS method on distance measures. Information Sciences 2007 (7th International FLINS Conference), 1057-1063. DOI: 10.1142/9789812709677_0148
Deza, M. M., & Deza, E. (2009). Encyclopedia of Distances. Springer-Verlag Berlin Heidelberg. DOI: 10.1007/978-3-642-00234-2_1