3 Temmuz 2014 Perşembe

Türkiye İlleri ve Plakaları Üzerine Gereksiz Bir İnceleme


Bir önceki (yada iki herneyse) herhangi birşey yazmadığın 6-8 aylık zaman zarfında gereksiz işlerle uğraştığımı yazmıştım. Bu yazıda biraz bundan bahsedeceğim. Yayınlayacağım bazı veriler ve bunların yorumları anlamsız gelebilir. Örneğin plaka numaraları. Ancak bütün bu iş plaka numalarından çıktı. Herşeyi başlatan soru şuydu: "Karadeniz bölgesinde, özellikle Doğu Karadeniz'deki plakalar 50 ile 60 arasında öbeklenmiş gibi. Gerçekten de matematiksel açıdan böyle bir öbeklenmeden somut bir biçimde söz edilebilir mi yoksa bu yalnızca bana mı öyle geliyor?" Böyle bir kanıda olmamın temel nedeni şu iller: Ordu (52), Rize (53), Samsun (55), Sinop (57), Tokat (60), Trabzon (61) ve ucundan biraz da bölgeye yakın olmasından dolayı Sivas (58).

Haritayı ve verileri yorumlarken biraz istatistik biraz da çizge (graf) teori kullanacağım. Çizge teorisindeki temel kavramları okuyucunun bildiğini varsayarak bunların tanımlarını vermeyeceğim. Bilmeyen ama öğrenmek isteyenler için bu öğelerin Wikipedia bağlantılarını sunacağım. Öncelikle belirtmeliyim ki, benim yaptığıma benzer bir biçimde il merkezlerini çizgenin düğümleri (vertex) ve aralarındaki komşulukları da bu düğümler arası kenarlar (edge) olarak alan Kaan Öztürk'e ait bir çalışma var. Güzel bir çalışma ancak benim açımdan eksiği, iller arasındaki kenarlar oluşturulurken iller arası mesafelerin (kuş uçuşu yada karayolu) hesaba katılmamış olması. Demek istediğim ben bu çalışmada Konya'nın Ankara'ya olan komşuluğu ile İzmir'in Manisa'ya olan komşuluğu arasında fark olduğunu varsayacağım (birinin merkezleri arası 258 km, diğerinin 35km). Öbeklenme olup olmadığını deneyebilmem için bunu da hesaba katmak zorundayım. Bir de bazı tartışmalı noktalar var. Örneğin illerin birbirlerine olan sınır komşuluklarını araştırırken K. Öztürk'ün çalışmasından başka Harita Genel Komutanlığı'nın sitesinden de yararlandım. HGK'dan bakıldığında İstanbul'a bakıldığında sınır olarak Kırklareli'yle arasında Tekirdağ'ın çok ince bir parçası bulunuyor (K. Öztürk, İstanbul ve Kırklareli'ni komşu olarak alıyor). Ben HGK'daki bilgileri esas aldım. Bir tek HGK sayfasında Kilis'in Hatay'la komşuluğu açıkça görünmüyor. Bunların komşu olmadıklarını varsaydım.

Çizge teorisi tabanlı derin bir çözümlemeye girmeden önce basit istatistiksel verilerle bir öbeklenmenin olup olmadığına baktım. En başta sorduğum soru Karadeniz Bölgesi'ni temel aldığından bölgelerin analiziyle başladım. Coğrafi ve beşeri veriler için temel olarak Wikipedia'yı kullandım, dolayısıyla oradaki bir hata analizlerime yansımış olabilir ancak veriler bölgeler kapsamında olduğundan çok büyük bir yanlışlığa yol açabileceğini düşünmüyorum (başka bir deyişle bağıl hata küçük). Bölge sınırları illeri tam olarak kapsamıyor. Örneğin Karaman, Akdeniz Bölgesi'nde mi yoksa İç Anadolu mu? Veya Çorum, Karadeniz Bölgesi mi yoksa İç Anadolu mu? Bu durumlarda ilçe sınırlarının bölge sınırlarıyla çakıştığını varsayıp, bir ilin hangi bölgede daha fazla nüfusu varsa o ili o bölgede saydım. Bu tür durumlar sıklıkla Akdeniz Bölgesi'nde olduğundan oradan bir örnek vereyim. Örneğin Denizli'nin Acıpayam, Çameli, Bozkurt ve Beyağaç ilçeleri Wikipedia'ya göre Akdeniz Bölgesi'nde yer alırken diğer ilçeler Ege Bölgesi'nde. Denizli'nin ilçelerinin nüfusuna baktığımız zaman il merkezinin diğer bütün ilçelerden fazla nüfusu var. İl merkezi Ege'de olduğuna göre isterse diğer bütün ilçeler Akdeniz Bölgesi'nde olsun, şehri Ege bölgesi'nde değerlendirdim. Parantez içerisinde, bu tabloda dikkati çeken başka bir konu da Denizli nüfusunun 1990 hatta 2000'e kadar ilçelerde daha fazla olup 2000'den sonra il merkezinin ilçeleri geçtiği. Bunun Pamukkale Üniversitesi'nin açılışıyla ilgisi olabilir.

İllerin plakalarını bu kritere göre değerlendirip, ilgili bölge sınırlarında kalan illerin plakalarının ortalama (μ) ve standart sapmalarını (σ) hesapladım ve aşağıdaki haritayı elde ettim. (Ortalama ve standart sapmayla ilgili: [1], [2], [3], [4], [5] ve [6]).

Bölgelere göre plakaların ortalama ve standart sapması
 
Haritada eşitliğin karşısındaki birinci sayılar 81 ile göre olan değerler. Parantez içerisindeki sayılarsa 67 ile göre yapılan hesaplamanın sonuçları. Bu haritadan çıkarılacak sonuç, genel olarak standart sapmada bölgeden bölgeye kayda değer değişiklik yok. Elbette ki plakalar yaklaşık olarak tekdüze giderken yeni illerin oluşturulmasıyla birden bire varolan tekdüzelik yerini gürültü olarak adlandırılabilecek noktalara bırakıyor. Bu da standart sapmada artışla kendini gösteriyor. Sonradan eklenen illerin hepsi sona eklendiğinden ortalamanın büyümesi beklenen bir durum. Güneydoğu Anadolu Bölgesi'ndeki ortalamanın yüksek olması orada çok sayıda yeni il bulunmasına bağlı. Başka bir dikkat çekici durumsa, Ege Bölgesi'nde hiç yeni il oluşturulmaması.

Yukarıda bahsettiğim ve varolduğunu varsaydığım tekdüzelik aşağıdaki haritayla görselleştirilebilir:
Gruplandırılacak görüntü
Bu harita illerin, plaka kodlarına göre siyah beyaz skalada renklendirilmesiyle oluşturuldu. 81 il için plaka kodu 3 ile çarpılarak gri kodu hesaplandı. Örneğin Aydın'ın RGB kodu #1B1B1B (Onluk tabanda 27 27 27). Bu haritaya bakıldığında belli bir öbeklenme görülebiliyor mu? Bence var. En başta varolduğunu düşündüğüm Trabzon-Rize öbeği Giresun (28) ile kesiliyor olsa da ondan daha büyük bir öbek göze çarpıyor. Sinop (57), Samsun (55), Ordu (52), Tokat (60), Sivas (58)'tan oluşan bir öbek. Ve buna çevre birkaç il daha katılabilir.

Bu analizler gözönüne alındığında somut bir veri vermiyor. Göz kararı öbeklenebilir görünüyor ama istatistik tam tersini söylüyor. Bu nedenle daha derin inceleme gerekiyor. Kullanacağım bilimsel yöntem, yüksek lisans tezi zamanlarımda rüyamda bile görmeye başladığım bir yayını temel alıyor: "Normalized Cuts and Image Segmentation". İlgili olanlar makaleyi okuyabilir. Ben temel noktaları anlatıp geçeceğim. Öncelikle haritayı bir çizge olarak düşünmek gerek. K. Öztürk'ün çalışmasında da yapıldığı üzere iller, çizge düğümleri ve aralarındaki komşuluk ilişkileri de çizgenin kenarları olmak üzere Türkiye haritasını göstereceğim. Çizgelerin matematiksel olarak temsilinde komşuluk matrisi adı verilen matristen yararlanılır. Basit bir veri yapısı olan komşuluk matrisinde, matrisin büyüklüğü çizgenin düğüm sayısıyla aynıdır. Türkiye haritası için bu, 81 x 81'lik bir matris olacak. Bu matris üç farklı şekilde doldurulabilir. Birinci satır ve sütun Adana, ikinci satır ve sütun Adıyaman vb. olacak şekilde;
  1. Eğer illerin yalnız komşuluklarıyla ilgileniyorsam komşu olan illere karşılık gelen satır ve sutunu 1, geri kalan öğeleri sıfır yaparak temsil edebilirim. Yazının en başında bağlantısını verdiğim K. Öztürk'e ait çalışmadaki yaklaşıma karşılık gelen temsil budur.
  2. Eğer illerin tümüyle ilgileneceksem aralarındaki kuş uçuşu uzaklığı il merkezlerinin koordinatlarından hesaplayabilirim yada daha iyisi karayollarının sayfasından iller arası uzaklık cetvelini indiririm. Bu cetvel karayolları haritasının kenarındaki üçgen tablo aslında.
  3. Ve eğer bütün illerle uğraşmak istemiyorsam yukarıdaki iki yaklaşımı karıştırırım: Birinci ve ikinci maddedeki matrisleri öğe öğe çarpıp (hadamard çarpımı) sadece birbirine komşu illerin aralarındaki uzaklığı dikkate aldığım bir matris elde ederim. 
Komşuluk Matrisi
Mavi noktalar sıfırdan farklı değerler olmak üzere, (1) ve (3) maddelerindeki matrisin genel görüntüsü yandaki gibidir.
Uzaklıkları dikkate aldım çünkü birbirine yakın olan illerin plaka numarası da birbirlerine yakınsa bunları gruplandıracağım. Ama işin teorisiyle ilgili açıklayacağım bir kaç nokta daha var. Düğümlerin aralarındaki ilişkilere (yani kenarlara) katsayı atanmasına yazında ağırlıklandırılmış çizge deniyor [7].  Örneğin bir ilden diğerine en kısa yoldan gitmek istiyorsam, ikinci maddede anlattığım çizge üzerinde en kısa yol problemini çözmem gerekir. Ağırlıklandırılmış çizgeler için bir çok örnek bulunabilir.

Komşuluk matrisiyle ilgili önemli nokta, bu problemde komşuluk matrisinin simetrik olması. Bunun anlamı; Samsun (55), Sinop'la (57) komşuysa matrisin 55. satır ve 57. sütununa karşılık gelen değer 1 olacaktır (ağırlıklandırılmamış çizgeden bahsediyorum). Elbette ki Sinop da Samsun'la komşudur ve 57. satır 55. sütuna karşılık gelen değer de 1 olacaktır. Veya Sinop'tan Samsun'a 163km yol varsa, Samsun'dan Sinop'a da aynı yol vardır. Bunu bütün iller için genelleştirebiliriz ancak bu şekilde olmayan yönlü çizgeler de bulunur. Samsun-Sinop yolunun tek bir tarafı çalışma dolayısıyla kapalı olsun. Samsun'dan Sinop'a gidebiliyoruz ancak geri dönerken Çorum-Amasya yolunu kullanmamız gerekiyor diyelim. Bu durumda artık matematiksel olarak birbirlerine bağlantıları olmayacağından komşuluk matrisi simetrik olmayacaktır. Veya örneğin, Adana'dan Kayseri'ye otobüsle 40 TL'ye gidebiliyorum ama dönüşte 50 TL ödüyorum. Adana'dan Niğde'ye 25 TL ve Niğde'den Kayseri'ye 20 TL ödeyerek gidebildiğimi varsayalım. Bu durumda giderken Adana'dan Kayseri'ye daha ucuza geçerim ama dönüşte Niğde üzerinden dönersem daha ucuz olur. Buradaki örnekte her iki yönde düğümler arasında farklı ağırlıklar vardır.

Komşuluk matrisi üzerine biraz daha oynayabiliriz. Bu matrisin satır yada sütun toplamlarını incelersek bize en az ve en çok komşusu olan iller hakkında bilgi verir. Buna göre sadece Kilis'in bir komşusu var. Hakkari, İstanbul, Kırklareli, Iğdır ve Yalova, iki komşuyla ondan sonra geliyor. En fazla sayıda komşusu olan iller 9 komşuyla Erzincan, Erzurum ve Konya. Bunlardan sonra 8 komşuyla Bolu, Diyarbakır, Sivas ve Yozgat geliyor.

Uzaklıklar matrisinin toplamları en merkezi ve en az merkezi olan iller hakkında bilgi verir. Buna göre en merkezi 5 il sırasıyla Kırıkkale, Kayseri, Kırşehir, Yozgat ve Nevşehir. İç Anadolu'da toplanmalarına şaşırmamak gerek. En az merkezi il olarak Hakkari açık ara ileride (bütün illerle mesafeleri toplamı 91 179km). Sonra sırayla, Edirne, Van, Kırklareli ve Iğdır geliyor. Bunların mesafeleri toplamı 82 000 ile 80 000km arasında değişiyor.

Sadece komşu illerin uzaklıkları matrisi yerel bilgi sağlar, çok fazla bilgi sağlamaz. İlerleyen paragraflarda anlatacağım konuya örnek olması için bunu da inceleyelim. İnceleyeceğim toplamlar illerin komşularına uzaklıkları toplamı. Bütün komşularına en yakın olan, sadece tek komşusu olan Kilis. En uzak olan, hem büyüklüğünden hem de çok komşusu olduğundan Konya. Fakat bu güvenilir bir bilgi değil. Bunun yerine uzaklık toplamlarını komşu sayısına bölüp ortalamaya baksak, yani komşu sayısından bağımsız olarak uzaklıkları normalleştirsek daha ilginç veriler sunuyor. Böyle yapınca en düşük yine Kilis ama komşularına ortalamada en uzak il bu sefer Antalya çıkıyor. Mersin'den sonra Konya ancak üçüncü oluyor.

Komşuluk matrisleri üzerinden bir çok ilginç veri almak olanaklı. Komşuluk matrisindeki sıfırdan farklı değerlerin ilin komşularını gösterdiği belirtilmişti. Komşuluk matrisinin karesi alınırsa her ile karşılık gelen satırdaki sıfırdan farklı değerler o ilin komşuları ve komşularının komşuları yani ikinci dereceden komşularını verir. Küpü, üçüncü derece komşuları vb. Toplam komşuluk sayısı 394. Karesi alınınca birinci ve ikinci derece komşuluklar toplamı 1217, küpü alınınca 2219. 81 x 81'lik bir matriste 6561 eleman bulunur. Sıfırdan farklı eleman sayısı, komşuluk matrisinin 14. kuvveti alınırsa 6561 oluyor. Yani Türkiye'nin iki en uzak ili arasında 13 il bulunur.

Şimdi tekrar Shi ve Malik'in yayınına geri dönelim. Burada yapılmak istenen nokta (düğüm) kümelerini bölütlemekti (segmentation). Çizgelerde bazı komşulukların kaldırılarak belli özellikteki düğümlerin ayrıklaştırılmasına kesim adı verilir. Her bir görüntü öğesi (piksel) üst, alt, sağ ve sol komşuluğu olan bir düğüm olarak ele alınsın. Kenarlar görüntü öğelerinin aralarındaki ilişkilere (örn. s/b görüntü için renk farkları) göre ağırlıklandırılırsa, ağırlıklarının toplamları en büyük olacak kenarları bulup bunları silerek yapılacak bir kesim bir görüntüyü bölütlendirebilir. En büyük yada en küçük değerli kesimi bulmak çizge teorisinde önemli yeri olan bir konudur.


Örneğin; yandaki görüntüde siyah parça içindeki noktalar 0 ve beyaz parça içindeki noktalar da hep 255 değerindedir. Kenar üzerindeki noktalar düşünülürse bir yanında 0 diğer yanında 255 olan noktalar vardır. Kenar ağırlıkları kolaylık açısından renk farkları olarak alınsın. O zaman yalnızca siyah parçanın sınırlarında 255 değerinde olan kenarlar bulunur, görüntünün geri kalanında kenar ağırlıkları 0'dır. Bu görüntünün en büyük kesimi değeri 255 olan kenarların kesip çıkarılmasıyla elde edilir. Böyle yaparak siyah bölüm beyaz bölümden ayrılmış olur. Başka bir yaklaşım renk değerlerinin farkı arttıkça değeri azalan bir fonksiyon bulup (örn, x ve y renk değerleri olmak üzere f(x, y) = 1/(x-y) ve x = y için yeterince büyük pozitif bir sayı. mesela 2) en küçük kesimi bulmak olabilir. Ancak her iki yaklaşımda da bazı eksiklikler vardır. Görüntünün kenarında daha küçük başka bir siyah parça olsun. En küçük kesimi arıyorsak, algoritma alanı küçük olan parçayı seçmeyi avantajlı bulur (örneği tekrar hatırlayalım, Konya'nın çok komşusu olduğundan komşuları arası mesafe en fazladır ancak ortalamaya vurulduğu zaman çizgenin en ayrık noktası Konya değil Antalya'dır). Bu nedenle Shi ve Malik'in makalesinde kesilecek bölüm çizgenin tümüyle ilişkilendirilerek, normalleştirilmiş kesim adı verilen bir kesim tanımlanmıştır. Yapılan iş aslında yukarıda yapıldığı gibi sadece uzaklıklara değil, komşu sayısına göre ortalama uzaklıklara bakılmasıdır. Bu nedenle yukarıda normalleştirmenin altını çizdim. Daha sonra makalede normalleştirilmiş kesim bulmanın, komşuluk matrisini bazı işlemlerden geçirip ortaya çıkan matrisin özdeğer ve özvektör çiftlerinin bulunmasıyla aynı iş olduğu gösterilir. Makalede görüntüler üzerinde çalışılmıştır ama haritalara da uygulanabilir.

Makalede uzaklıklar ve renk değerlerinden kenar ağırlıkları belirlenerek bir komşuluk matrisi oluşturuluyor. Bu uygulamada ağırlık fonksiyonunu makalede verilen üstel fonksiyon gibi aldım (s. 7). Basitlik açısından sigma olarak gösterilen parametreleri hesaba katmadım. Harita için renk değerleri (intensity, F(i)'ler) plaka numaraları ve uzaklıklar (X(i)'ler) karayolu uzaklıkları oldu. Plakaları matrisini oluşturmak için kod;

for k1 = 1:81
    for k2 = 1:81
        plakalar(k1, k2) = abs(k1 - k2);
    end
end


Uzaklıklar Excel tablosundan, xlsread fonksiyonuyla Matlab'de okunabilir. Yazının başında saydığım gibi üç ayrı kriterden, komşuluk ilişkileri aynı ancak kenar ağırlıkları farklı üç ayrı çizge oluşacak:
  1. Yalnızca illerin komşuluk ilişkileri dikkate alınacaksa: K = exp(-plakalar) .* exp(-komsuluk);
  2. Bütün illerin kendi aralarındaki uzaklıklar dikkate alınacaksa: K = exp(-plakalar) .* exp(-uzakliklar);
  3. Sadece komşu iller arasındaki uzaklıklar dikkate alınacaksa: K = exp(-plakalar) .* exp(-(komsuluk .* uzakliklar));
K matrisi oluşturulduktan sonra bu matrisin satırları tek tek toplanır, 81 tane toplam elde edilir ve köşegen öğeleri bu toplamlar olan bir matristen, K matrisinin kendisi çıkarılır. Buna L diyelim. L'nin özdeğerleri ayrıştırılıp en küçükten bir büyük özdeğerine karşılık gelen özvektörü bulunur. En küçük olan, çizgenin kendisini gösteren özvektör olarak düşünülebilir. Bu bir bilgi içermez. İkinci en küçük özvektörün pozitif elemanlarıyla negatif elemanları bir öbek bilgisi içerir. Örneğin özvektörün yalnızca 2., 4. ve 6. elemanları pozitif, geri kalanları negatifse Adıyaman, Ağrı ve Ankara bir öbek ve geri kalanlar diğer öbeği oluşturmuştur. İstenirse pozitif yada negatif kısımlar ayrılıp, L matrisinin pozitif (yada negatif) elemanlarla bir permütasyonu alınır ve oluşacak yeni matrisin de ikinci en küçük özdeğerine karşılık gelen özvektörü bulunursa ikinci bir bölütleme yapılabilir.



Birinci yaklaşımda yazının başında bahsettiğim Sinop, Samsun, Sivas'tan başlayıp Konya'ya doğru giden bir öbek görünüyor. Bunlara Rize ve Trabzon da giriyor. İkinci mertebe bölütlemede yalnızca iki anlamlı sonuç var. Birincisi Sinop, Samsun öbeğinden çok da yakın olmayan 70'li plakalar çıkıyor (Kırıkkale, Karaman, Düzce, Bartın) ama öbeğin kendisi hala bütün. Diğer taraftaysa 20 ile 40 arası plakalı iller kendi aralarında serpiştirilmiş duruyor. Bu bölütlemedeki tek gerçek öbek Kars, Erzurum, Erzincan, Gümüşhane, Giresun ve onlarla birlikte az yakınındaki Elazığ, Diyarbakır öbeği bulunuyor. Daha ileriki bölütlemelerde (aşağıda) Samsun, Sinop ve Sivas'ın aralarında bulunduğu parça da Konya, Niğde parçasından kopuyor çünkü alfabetik olarak S'ler birbirine daha yakınlar. Dolayısıyla plakalarda da daha az fark var. Diğer yandaysa 20-40 arası olan öbek yaklaşık olarak 20-30 ve 30-40 arası olmak üzere iki ayrı öbek oluyor. Gümüşhane (29) bir öbekteyken Giresun (28), Erzurum (25) ve Erzincan'la (24) başka bir öbekte bulunuyor. Aslında dikkatle incelendiğinde öbekleme yapılırken komşuluktan daha çok ağırlık plakalara verilmiş gibi.
Birinci yaklaşımda üçüncü mertebeden bazı sonuçlar



İkinci yaklaşımın sonuçları

İkinci yaklaşımda birincisine göre daha anlamlı sonuçlar beklerken daha az anlamlı sonuç çıkıyor. Bunun nedeni, plaka komşuluğunun öbek oluşturmada uzaklıklardan daha az ağırlığı olması. Plaka komşuluk matrisi 0 ile 80 arasında değerlere sahipken uzaklıklarda bu değer birkaç yüz km'den 2000km'ye kadar değişiyor. Yayındaki sigma parametresi belki de her iki kıstasın ağırlıklarını eşitlemek için gerekiyordu. Sonuçta yandaki gibi bir harita çıkıyor. Örneğin alt tarafta doğuda Kars (36), Erzurum (25) gibi illerin öbeklenmesi bir dereceye kadar mantıklı gibi görünse de araya Şanlıurfa'nın (63) nasıl karıştığını plaka numaralarıyla açıklamak zor. Daha önceki Sinop, Samsun, Sivas ve diğer iller öbeği Sinop'suz olarak bulunuyor ama 50'li plakası olan illerin öbeğinde Kayseri (38) ve hatta Hatay (31) da yer alıyor. Bu yaklaşımın formülünde bir hata olduğu için tutarsız sonuçlar bulduğumu düşünyorum. Belki formüle bir ince ayar çekmek gerekebilir.

Son olarak üçüncü yaklaşımda yine birinciye benzer olarak sonuçlar var. Sanki bölütleme sadece plakalara göre yapılmış, komşuluk ilişkileri daha az dikkate alınmış gibi duruyor. Neredeyse ilk kırk bir bölümde ikinci kırk ayrı bir bölümde toplanmış. Daha sonraki mertebede ilk kırktan ilk yirmi de ikinci yirmi, sonraki kırktan da kırkla altmış arası ve son yirmi kalmış gibi. Sayısal sınırlar tam kesin olmasa da ayrımın hemen hemen böyle olduğu açık. Eğer bir başarıdan söz edilecekse bu da en fazla ilk yaklaşım kadar başarılı.


Hiç yorum yok:

Yorum Gönder