Roma İmparatoru Diocletianus 293 yılında önemli bir karar alarak devasa Roma imparatorluğunu doğu ve batı olarak iki parçaya ayırdı. İmporatorluk o kadar büyüyüp yönetilmesi zor hale gelmişti ki, iki eş değer imparator tarafından yönetilmesi oldukça mantıklıydı. Doğu ve batı Roma Augustus(latince Majesteleri ) adı verilen iki imparator ile yönetilmeye başlandı.
Sonraki dönemde I. Konstantin batı roma imparatoru olarak karşılıklı siyasi çekişmeler sonucu Doğu Roma imparatoru Licinius ile mücadeleye girişti. Önce Adrianopolis (Edirne) sonra Hrysopolis (Üsküdar) savaşlarını kazanarak Doğu ve Batı Roma’nın tek imparatoru oldu. I. Konstantin’in aldığı önemli kararlardan biri Roma imparatorluğunun başkentini Roma‘dan İstanbul’a taşımaktı. İstanbul o dönemlerde küçük bir kasabaydı. Fakat konum olarak doğu ve batı ticaret yollarının merkezinde aynı zamanda koruması ve savunulması kolay bir yerdi. Yeni başkent için birçok imar çalışmalarında bulunuldu. I. Konstantin’in aldığı kararın doğru olduğunu zaman içerisinde Doğu Roma’nın Batı Roma’dan daha fazla ayakta kalması sayesinde görüyoruz.
O dönemlerde şimdiki gibi veri analiz imkanları olsaydı eminim tarih akışını değiştirecek birçok olay farklı gerçekleşirdi. Bir yerin,bir konumun veya bir şehrin konumu etkileyen birçok parametre vardır. Yukarıda bahsettiğim gibi tarihsel süreçlerde olduğu gibi uğruna savaşlar çıkacak kadar önemlidir. Peki bir şehrin içindeki bir evin konumu bu konudan bağımsız mıdır? Değildir tabii. Sonuçta bir evin konumu fiyatını belirleyen en önemli parametrelerden biridir. Bunun gibi diğer parametrelerin birbiriyle olan ilişkisini bulmak için veri üzerinde araştırma yapmamız gerekir. Bu yazıda bir veriseti nasıl analiz edilir onun üzerinde biraz durmak istiyorum.
Girişte İstanbul’dan Roma’dan, imparatorluklardan bahsettim fakat kullanacağımız dataset Boston şehrine ait datalardan oluşmakta :). https://www.kaggle.com/vikrishnan/boston-house-prices adresinden indirebilirsiniz. Kaggle‘da bunun gibi birçok dataset bulunuyor. Datasetler üzerinde çeşitli analizler yapılıyor. Bunun yanında ödüllü yarışmalarda bulunuyor. Bu konuda kendini geliştirmek isteyenler için çok güzel örnekler ve araştırmalar bulunmakta tavsiye ederim.
Bir veriseti üzerinde analiz yapabilmek için öncellikle kullanacağımız ortamı ve programla dilini seçmemiz gerekiyor. Son yıllarda data üzerinde inceleme yapabilmek için 2 programlama dili öne çıkıyor. R ve Python. Her iki dilde bana göre veri analizi için oldukça uygun dillerdir. Java,C# veya C++ modern diller varken neden bu dilleri kullanıyorum derseniz. Aslında farklı bir tartışma konusudur. R ve Python’da veri işleme işi daha az kodla daha hızlı çözülebilmekte. Java’da veya c#’ta 100 satırda yaptığımız işlemi R ve Pyhton’da belki 10 satırda yapabiliyoruz. Modüler yapıları sayesinde farklı kütüphaneler kurabiliyoruz. Ben Boston House Price dataseti için R ve R Studio ile çalıştım. Tavsiye ederim.
Öncelikle Kaggle‘dan indirdiğimiz dataseti okuyup bir objeye atayarak işe başlamamız gerekiyor. Bunun yerine MASS kütüphanesini de kullanabiliriz. MASS Boston house price datasetinide içermektedir. Analizimizde düzgün sonuçlar elde edebilmek için datasetimizde boş karakterler, null karakterler veya duplicate kayıtlar olmamasına dikkat etmeliyiz. Bunun için aşağıdaki şekilde kontrol etmeliyiz.
Görüldüğü gibi null değer bulunmuyor datasetimizde. Yukaridaki şekilde gibi de duplicate kayıtlar için kontrol etmemizde fayda vardır. Duplicate kontrolü yaptığımızda ise duplicate durumda olan bir kayıt bulunmadığını görüyoruz.
Dataseti incelediğimizde CRIM,ZN,INDUS,CHAS,NOX… gibi kolonlardan oluştuğunu görmekteyiz. Bu kolonlar Boston’da satılan bir evin fiyatını etkileyen parametreler olarak düşünebiliriz. Mesela “CRIM per capita crime rate by town” kişi başına düşen suç oranını gösteriyor. Datasetin kolon bazında genel istatistiklerine baktığımızda en küçük değer,en büyük değer, medyan, ortalama gibi değerler bize dataset kolonlardaki değer hakkında genel bir vermektedir.
Korelasyon Analizi
“cor(boston.data)” kodu ile tüm kolonların birbiriyle olan ilişkisini gösteren korelasyon tablosu şeklinde görebiliriz. Böylelikle hangi parametre diğerini nasıl ve ne derece etkilemiş daha sonra ev fiyatlarını tahmin etmekte kullanacağımız modele hangi parametreleri almalıyız hangilerini almamalıyız sorularını yanıt olabilecektir.
Örneğin MEDV kolonun korelasyon tablosunu incelemek istersek. MEDV kolonu dataset açıklamasında “median value of owner-occupied homes in $1000s.” olarak verilmiş. Yani ev sahiplerinin oturduğu evlerin ortalama değeri olarak düşünebiliriz.
Kolon bazında korelasyon tablosuna baktığımızda MEDV parametresinin en çok ZN ve RM parametreleriyle pozitif korelasyonda olduğunu görüyoruz. LSTAT ve PTRATIO kolonlarıyla ise negatif korelasyonda görülüyor. Bu ne anlama geliyor?
Korelasyon istatistikten bildiğimiz gibi iki farklı serinin birbirine olan benzerliğine denir. Pozitif korelasyon birbirine yakın ilişkisi olan, negatif korelasyon ise birbirine uzak ilişkisi olan serilere deniyor. Tablodan anladığımız kadarıyla konut başına düşen ortalama oda sayısı ZN MEDV ile pozitif korelasyonu var. Aynı şekilde konut arazisi oranı 25.000 metrekarenin üzerinde olanlar (RM) ile MEDV ile yakın ilişkisi var. Nüfusun düşük olma durumu (yüzde) LSTAT MEDV ile uzak ilişkili. Şehirdeki nüfusun az olduğu yerde evsahipleri evlerini kendilerinin kullanmadığı anlamını çıkarabiliriz buradan. PTRATIO (şehre göre öğrenci-öğretmen oranı) yine MEDV ile negatif korelasyonu var. Öğrenci öğretmen oranı arttığında evlerin kiraya verildiği anlamı çıkıyor.
Sonuç olarak tüm parametrelerin birbiriyle olan korelasyonlarını diğer istatistiksel bilgilerle birlikte incelememiz bize dataseti daha iyi tanıma fırsatı yaratıyor. Böylelikle bir şehirde ev fiyatlarını etkileyen faktörleri analiz etmiş oluyoruz. Sonraki aşamada ise fiyatı etkileyen önemli parametreleri fiyat denklemimize yani başka bir deyişle fiyat modelimize dahil edip ev fiyatlarını tahmin edebiliyoruz. Tahmin etme işlemleri için genelde Regresyon yöntemleri kullanılmakta. Bu konuyu ise başka bir yazıya bırakıyorum. Yazı umarım faydalı olmuştur. Başka bir yazıda görüşmek üzere. 🙂
Murat.