veri görselleştirme

STEM

Türkiye’de Kadın Cinayetleri #orangetheworld

Bu yazımda, SistersLab olarak bu yıl bizim de ikinci kez katıldığımız Birleşmiş Milletler Kadın Birimi’nin (UN WOMEN) düzenlediği #orangetheworld kampanyasından ve Anıt Sayaç verisiyle Tableau’da hazırladığım Türkiye’de Kadın Cinayetleri raporundan bahsedeceğim. Ayrıca yazının sonunda interaktif raporu görebileceksiniz!     DÜNYAYI TURUNCUYA BOYA! #orangetheworld Nedir #orangetheworld kampanyası? Buradan Murat’ın geçen sene paylaştığı çok detaylı yazıyı okuyarak bilgi edinebilirsiniz. Kısaca bahsetmek gerekirse: Birleşmiş Milletler Kadın Birimi (UN WOMEN), her geçen gün artan ve farklı biçimlerde ortaya çıkan kadına yönelik şiddete karşı farkındalığın ve savunuculuk çalışmalarının artması için herkesi hareket etmeye çağırmaktadır. Bu amaçla her yıl 25 Kasım (Uluslararası Kadına Yönelik Şiddete Karşı Mücadele Günü) – 10 Aralık (Dünya İnsan Hakları Günü) tarihleri arasında 16 Günlük Aktivizm Kampanyası düzenlemektedir. Ülkemizde de 2012 yılından bu yana yoğun bir takvimle düzenlenen kampanyalar, etkinlikler ve aktiviteler ile kadınlara yönelik şiddete karşı savunuculuk yapılmaktadır.     Kadına Yönelik Şiddete Karşı tüm dünyayı yan yana durmaya çağıran Birleşmiş Milletler Genel Sekreterliği, UNiTE (UNiTE to End Violence Against Women – Kadınlara Yönelik Şiddete Son Vermek için Birleşin) ismini verdiği kampanyada ‘Dünyayı Turuncuya Boya!’ sloganını kullanarak faaliyetler organize etmektedir. Kampanyanın sembolü olarak kullanılan ve yapılan tüm farkındalık faaliyetlerinde ortak renk olarak belirlenen turuncu rengi daha parlak bir geleceği, canlılığı ve şiddetten uzak kalmayı simgelemektedir. 16 gün süren kampanya boyunca tüm ülkeler sembol binalarını turuncu renkle ışıklandırarak, şirketler logolarını turuncu renk yaparak, spor müsabakaları öncesinde takımlar kadına yönelik şiddete karşı sloganların yer aldığı pankartlarla seremoniye çıkarak bu konuya dikkat çekmeye çalışmaktadır. Sivil toplum kuruluşları da etkinlik takvimlerinde turuncu temasını ve kampanya sloganlarını mutlaka kullanarak herkesi bu dayanışmaya davet etmektedir. Her sene dünya çapında #orangetheworld, #16days, #saynotoviolenceagainstwomen ve #16daysofactivism etiketleriyle sosyal medyada milyonlarca etkileşim alan ve bu yolla daha fazla kişiye ulaşmayı amaçlayan kampanya, ülkemizde de her sene çeşitli temalarla ön plana çıkarılmaktadır. Geçtiğimiz yıllarda #KimseyiGerideBırakma, #BeniDeDuy, #NesillerBoyuEşitlik, #KayıtsızKalmayın gibi sloganlarla duyurulan etkinliğin bu seneki etiketi #SheSaidNo olarak belirlendi. Biz de SistersLab olarak bugünden başlayarak 16 gün boyunca tüm içeriklerimizi turuncuya boyuyoruz!     Türkiye’de Kadın Cinayetleri Tableau Raporu Ben de #orangetheworld kapsamında farkındalık yaratmak adına turuncu bir Türkiye’de Kadın Cinayetleri Tableau raporu hazırlamak istedim. Raporu buradan Tableau Public üzerinden inceleyebilir ya da yazının sonundaki gömülü alandan ulaşabilirsiniz. Veri Kaynağı: Anıt Sayaç Raporun veri kaynağı şiddetten ölen kadınlar için dijital bir anıt olan Anıt Sayaç sitesinden Ülgen Sarıkavak tarafından buradaki Python kodundan yararlanarak CSV dosyasına aktarıldı. Veri 2008 yılından başlıyor ve 2022 Ekim ayının sonuna kadar devam ediyor. Tableau’da Veri Temizliği Veri çeşitli haberlerden yararlandığı için bir kolonun içinde aynı anlama gelen birden fazla değer bulunabiliyor, kolon isimlendirmelerinde ise düzenleme yapılması gerekiyordu. Bu sebeple ilk adım Tableau’nun Rename özelliği ile kolon isimlendirmelerini değiştirmek oldu. Sonraki önemli temizleme adımı ise aynı anlama ya da benzer anlamlara gelen farklı değerlerin gruplanmasıydı. Bunun içinse Tableau’nun Group özelliğini kullandım. Veri Görselleştirme Bu işlemler bittikten sonra ise sıra görselleştirme adımına geldi. Burada veri görselleştirmede dikkate alınması gereken temel kriterlerden biri olan genelden özele doğru derinleşme ilkesinden yararlandım. Bir veri görselleştirme çalışması yaparken raporun üst kısımlarında genel bir bilgilendirme yapmak ve daha sonra detaya inmek önerilir. Bu raporda da öncelikle belirlenen tarihler aralığında genel olarak Türkiye’de kadın cinayetlerinin maalesef artışta olduğunu görüyoruz.     Daha sonra kullanıcıya yıl ve il seçebilmesi için etkilenecek tüm grafiklerin üzerinde filtreler bölümü sunuluyor.     Biraz daha detaya inmek için Türkiye’de kadın cinayetlerinin illere göre dağılımını hem harita üzerinde görebiliyor hem de bar grafik ile il sıralamasını görebiliyoruz. Her iki grafikte de illerin üzerine geldiğimizde tooltip sayesinde ilgili ildeki kadın cinayetlerinin yıllara göre değişimini görüyoruz. Tableau’da tooltip’e grafik ekleme yöntemi ise başka bir yazının konusu olacak.     Kadınları kim öldürüyor? Burada ise kadınların kim tarafından öldürüldüğünü görmek için solda genel bir pie grafik görüyor, sağda ise daha detaya inerek bar grafik üzerinde dağılımları görüyoruz. Kadınların %74’ü tanıdığı biri tarafından öldürülüyor. %60’ı ise yakın partneri tarafından öldürülüyor. Yakın partner eş, eski eş, sevgili, eski sevgili, nişanlı, eski nişanlı, sözlü, eski sözlü, imam nikahlı eş, eski imam nikahlı eş olabiliyor. Kalan çoğunluk ise ailesi tarafından öldürülüyor.     Kadınlar neden öldürülüyor? Kadınların öldüren kişilerin gerekçelerini bir word cloud grafiği üzerinde görüyoruz. Dağılımda yoğunluk arttıkça kelimelerin boyutu büyüyor ve rengi turuncuya doğru değişiyor. En büyük sebeplerin geçimsizlik, aldatma iddiası/kıskançlık, ayrılma/boşanma, teklifin reddedilmesi ya da namus/töre olduğunu görebiliyoruz.     Sonraki grafiklerde ise farklı grafik tipleriyle daha detaylı sonuçlar görebiliyoruz.     En altta ise kullanıcının tarih ve il filtreleyebileceği bir anıt bulunuyor.     Aşağıda raporun siteye gömülü ve interaktif halini inceleyebilir ya da buradaki linkten Tableau Public üzerinden de erişebilirsiniz. 16 gün boyunca turuncuya boyayacağımız içeriklerimizi takipte kalın! #orangetheworld #SheSaidNo

STEM

Tableau Temelleri: Veri Kaynağına Bağlanma

Herkese selam, bir önceki yazımda Tableau Desktop’ta bulunan Saved Data Sources üzerinden tarihlerin çalışma mantığını incelemiştik. Peki ya Tableau’nun bize örnek olarak sunduğu Saved Data Sources yerine kendi veri kaynağınızı kullanmak isterseniz? Gelin birlikte Tableau Desktop üzerinden çeşitli veri kaynaklarına nasıl bağlanabileceğinizi inceleyelim.

STEM

Dashboard Oluşturmada Yardımcı Araçlar

Merhaba, serimizin dördüncü adımındayız, şimdiye kadar temel veri görselleştirme tekniklerinden ve bunların Python dilinde uygulamalarından örnekler verdik. Şimdi ise aynı konu üzerine birden fazla görseli birlikte sunarak daha fazla bilgiyi bir arada aktardığımız dashboardlara değiniyor olacağız. Serinin önceki yazılarını henüz okumadıysanız bir göz atmanızı öneririm. Adım Adım Veri Görselleştirme: Tipler Ve Tüyolar. Adım Adım Veri Görselleştirme: Python Temelleri Adım Adım Veri Görselleştirme: Ceşitli Senaryolar ile Görselleştirme Dashboardlar aynı veya benzer konular hakkında önemli bilgilerin, genellikle görseller ile bir arada sunulduğu bir raporlama çeşidi olarak özetlenebilir. Veriden anlam çıkartmak konusunda çalışan bizler dashboardları arkadaki gerekli hesaplamaları ve gösterime uygun olan değişkenleri (feature) grafikler ve tablolar ile bir araya  getirerek son kullanıcının ilgisini doğru noktalara çekecek şekilde tasarlıyoruz. Dashboard oluşturmada adım adım kod anlatımı yapmayacağız bu yazıda, fakat hangi araçlar ile etkili dashboardlar oluşturulabileceğini belirtmekte fayda var. Öncelikle daha önce de belirttiğimiz gibi veri görselleştirmede kısıt yok. Grafiklerimizi ister Python veya R, istersek de Excel veya karakalem ile oluşturabiliriz. Dashboard oluşturma aşaması tekil grafik oluşturmaktan bir nebze daha zorlayıcı bir görev olduğundan hazır şablonlardan yararlanmak veya yetkinliklerimizi ileriye taşıyacak araçlar öğrenmeye başlamak bu görevde daha etkili çıktılar ortaya koymamızı sağlayacaktır. Yetkinliklerimiz dahilinde ve ihtiyacımıza göre farklı araçları kullanmak mümkün. Mesela kodlama gerekmeden Excel ile bir veri seti hakkında farklı görseller ile bilgi sunmak mümkün. Aynı konu hakkında haftalık olarak elinize gelen tablolar için bir şablon oluşturmak ve tekrar tekrar uğraşmadan tabloları bu şablon ile görselleştirmek mümkün mesela. Dashboard oluşturmada sınır sadece verilerinizin çeşitliliği ve sunmak istediğiniz bilgi. Bir diğer Microsoft aracı olan Power BI da dashboard oluşturmakta çok güçlü bir araç. İçerisindeki çok sayıda sunulan yardımcı etkileşim araçları ve görsel çeşitliliği ile çok hızlı bir şekilde etkileyici dashboardlar oluşturmamıza olanak sağlıyor. Arayüz üzerinden her türlü küçük görsel detaylarını kolaylıkla özelleştirebiliyor ve tek tıkla tüm grafiklerimizin içeriklerini seçimlerimize göre şekillendirebiliyoruz. PowerBI’ın Python ve R dillerinde scriptler yazmaya izin vermesi, matplotlib gibi kütüphane desteği de Python tarafından gelenler için belki bir nebze daha kolaylık sunacaktır. PowerBI’ı direkt olarak SQL’deki tablolarımız ile bağlayıp SQLdeki verilere göre tablolarımızı güncel tutmak da sadece statik veri ile dashboard ortaya koymaktan fazlasını da sunuyor bizlere. Dashboard oluşturmakta kullanılabilecek araçlar arasında R – Shiny de bulunmakta. Etkileşimli dashboardlar ortaya çıkartmakta R dilinin gücünü de arkamıza almamızı sağlayan Shiny ile gerçekten çok başarılı uygulamalar ortaya çıkartılabiliyor. İstatistiksel analizlerimizin çıktılarını bir arada sunabileceğimiz, özelleştirmelerle etkileşim araçlarını kullanabildiğimiz ve SQL bağlantısı ile sürekli güncel verileri görsellerştirebildiğimiz Shiny uygulamaları diğer programlama dillerine nazaran daha kolay bir şekilde dashboard oluşturmamızı sağlıyor. Google Data Studio Hızlı ve çok kolay bir şekilde dashboard oluşturabileceğiniz bir diğer araç ise Google Data Studio. Birçok eklentisi sayesinde farklı kaynaklardan veri aktarımına olanak sağlayan ve kolay kullanıma sahip bir görselleştirme aracı. Hemen hemen herkesin sahip olduğu gmail hesapları ile giriş yapıyor olup farklı bilgisayarlardan da browser üzerinden bağlansak bile verilerimize ulaşıp çalışmaya / görsellerimizi paylaşıp özelleştirmeye devam edebileceğimiz bir opsiyon olması da ayrı bir güzel yanı. Dahası da var tabi. Mesela açık Grafana’yı duymayanımız yoktur. Etkileyici görselleri ile lider şirketlerin de kullandığını bildiğimiz, ücretli ve açık kaynak versiyonu bulunan farklı kaynaklardan veri okumaya ve sorgulara izin vermesiyle dikkatlerimizi çeken bir görselleştirme aracı. Yine Python tarafında ise StreamLit ve Plotly-Dash öne çıkan ve neredeyse hiç HTML ve CSS bilmeden web uygulaması olarak etkileşimli dashboardlar ortaya koymamızı sağlayan kütüphaneler. Önceki yazılarımda da üzerinde durduğum Python plotly kütüphanesi çatısında bulunan dash, web uygulaması olarak dashboardlar oluşturmamızı sağlıyor. Neredeyse hiç HTML ve CSS bilmeden her türlü detayı özelleştirmeye izin vererek etkileşimli dashboard yapmaya izin veriyor. Python’da işlediğimiz verileri statik veya dinamik bir şekilde görsellere dökmeye, her türlü filtrelemeye ve bunları kullanıma açmaya olanak sağlıyor plotly dash. Mesela eğitilmiş makine öğrenmesi modellerimizin tahmin değerlerini, kullanıcıdan alınan inputlar ile yönetebildiğimiz çıktıları, grafikleri sunmaya olanak tanıyor. Bir kurcalamak isterseniz mesela geçen yazımızda kullandığımız veri seti ile çok basit bir örneği  github adresinden bulabilirsiniz. Bu yazımızda genel olarak bir uygulama yapmayıp sadece kullanılabilir dashboard opsiyonları üzerinde durduk. Bir sonraki yazımızda Python’da etkileşimli bir dashboard oluşturup bu dashboardın özelleştirilmesine ve grafikleri etkilemesine değiniyor olacak ve veri görselleştirme serimizi noktalayacağız. Bir sonraki yazıda görüşmek üzere.

STEM

Adım Adım Veri Görselleştirme: Çeşitli Senaryolar ile Görselleştirme

Merhaba, serimizin önceki iki yazısında bir temel atmıştık, bu bölümde bazı sorulara cevap olan görseller sunuyor olacağız. Önceki yazılara göz atmanızı öneririm: Adım Adım Veri Görselleştirme: Tipler Ve Tüyolar. Adım Adım Veri Görselleştirme: Python Temelleri Bu yazıda oluşturulan örnek görsellerde hepimizin anlayabileceği, üzerine fikir yürütebileceği bir konu olan vücut ölçülerini barındıran “Body Fat Prediction Dataset“ini kullandım. Kaggle’dan ulaştığım bu veri setini indirip kurcalayabilir, veri hakkında daha detaylı bilgiye sahip olabilirsiniz. Not: Bu yazıda temel sorular üzerinde gidilip, bazı önemli ön kontrol ve ara aşamalar atlanmaktadır. Temel amaç görselleştirme olup en doğru bilgi için daha detaylı çalışma gerekmektedir. Öncelikle bazı metrik dönüşümler ve ek hesaplamalar yaptım. Kimi veriler bize biraz uzak IBS ve INC cinsinden metrikler ile ifade ediliyordu, bunları cm ve kg cinsine dönüştürmem gerekti. Bu gibi ara hesaplamalar ve tüm kodlara github adresimden ulaşabilirsiniz. Şüpheli bir durum olup olmadığını anlamak için değişkenleri box plot ile kontrol edebiliyoruz. Box plotı birden fazla değişken için tek tek oluşturmak veya tek tek değişken bilgilerini girerek eklemeler yapmak mümkün olsa da bir for döngüsü ile tekrardan kaçınarak tek seferde görseli oluşturmak bize kolaylık sağlayacaktır. Bu görselde direkt gözümüze BMI değerinin 160’ları bulduğu bir gözlem çarpmış olmalı. BMI değeri normalde 25 civarı olması beklenen, 40 üzerindeyken ciddi tehlikeye işaret eden bir durum. Bu değerin gözlemlendiği kişiye baktığımda bu kişinin 44 yaşında  92kg ve 75cm boyunda olduğunu gördüm. Bir karışıklık olduğu ortada, bir hatalı veri girme durumu olabilir veya bu arkadaşımız engelli olabilir, standart ölçümlerde beklenmedik çıktılar elde edilmiş olabilir.BU nedenle bu gözlemi sonraki aşamalarda dışarıda tutmayı uygun buldum. BMI skorlarının düştüğü aralıklar “zayıf”, “normal”, “obez” gibi gruplara işaret ediyor. Bu BMI gruplarının veri seti içerisindeki dağılımı görmek istediğimizi varsayalım. Gösterimimizi Pie Chart ile yapmamız gerekiyor fakat pie chart bir değerin toplamı gibi bir kümülatif gösterim mantığına dayanıyor. Veri setimizde her bir satır 1 kişiyi temsil ediyor olduğundan, her satırın temsil ettiği kişiyi belirtmek için bir dummy değişken oluşturmamız gerekiyor. Bu şekilde pie chart ile ortak dili konuşabiliriz. Veri setimizde 250 civarı gözlem var. Yaşlar 20-70 aralığında seyrederken hemen hemen her yaştan birden fazla kişi bulunuyor. Biri size şöyle bir soru sorabilir “Aynı yaştaki kişilerin max – min BMI skor farkları nedir?” Mesela 26 yaşında 4 kişi var ise ve BMI skorları sırası ile 20-28-23 ve 19 ise 26 yaşın BMI skor max-min aralığı 28-19=9 olacaktır. Böyle bir soruda yaşlara göre bir groupby işlemi gerektiği açık olsa da min-range’e ulaşmamızı sağlayan bir aggrigation func bulunmamakta, böyle bir durumda bu fonksiyonu da bizim yazmamız gerekir. Her bir bar max-min farkını belirtiyorken 0 olan yaşlarda tek gözlem olduğu veya bir gözlem olmadığı, dolayısıyla bir max – min hesabı yapılamadığı sonucuna ulaşılabilir. Verileri anlama çalışmalarımızın sonu bildiğiniz gibi bir model eğitimine / analizine çıkıyor. Temel olarak regression, classification, time series analysis ve clustering  görevlerimiz var. Bir sorudan bağımsız bu veri setine rastgele belirlediğim değişkenleri kullanarak bir clustering algoritması olan KMeans modeli ile kümelenmeleri görselleştirmeye karar verdim. KMeans ile çok sayıdaki değişkenlerce birbirine benzeyen / ayrılan gözlemlerin aynı veya farklı gruplara düşmesine göre yorumlar yapıyoruz. Burada küme sayısını belirlemek için bir çok yöntem var. Ben bunlardan Elbow Methodu’nu (Dirsek Yöntemi) kullandım. Bu yöntem ile küme sayısı ve hesaplanan WCSS skorları grafiğe döküyor ve büyük dirsek (elbow) kırılmasının olduğu noktadaki küme sayısını optimum küme sayısı kabul ediyoruz. Dirsek noktasındaki hata ne kadar düşükse gözlemler de o kadar güzel / keskin bir şekilde kümelere ayrılabilir yorumu yapabiliriz. Görsele baktığımızda bir dirsek kırılması göze çarpıyor net olarak. WCSS’nin durağanlaşmayıp giderek azalması grup ayrımlarının keskin olmayacağı konusunda şüpheye düşürebilir bizleri. İlla bir karar vermek gerekirse 2 ve 4 noktalarındaki kırılmalardan durağana daha yakın olan 4 noktasını seçerek devam ediyorum analizime. Kümeleme sonuçlarını bir görselde göstermek çok da kolay değil aslında. Çünkü eğitimde kullandığımız 10 kadar değişkeni en düzgün gösterim 10 boyutlu bir düzlemde gösterim ile olacaktır. Bu da insan algısının çok üzerinde bir boyut sayısı olduğundan scatter plot ile 2 boyut ile gösterebilmek için bir yardımcıya ihtiyacımız var. 10 boyutlu veriyi 2 boyuta indirgemede de PCA’den yardım alıyoruz. Normal şartlarda PCA’de normal dağılım gibi varsayımlara sahip, fakat temel amacımız görseller hakkında bilgi vermek olduğu için bu kontrolleri yapmıyorum şuan. PCA yüksek boyutlu veri setinin değişkenliğini biraz bilgi kaybı ile daha düşük boyutlarla temsil edecek dönüşümü sağlayan bir yöntem. 10 boyutlu verimizi böylelikle 2 boyuta indirgiyor ve KMeans sonuçlarımızı PCA ile elde edilen 2 Principle Component ile gösteriyoruz. (Bu arada 2 component ile %80+ açıklama yüzdesine ulaştık.) Beklediğimiz gibi kümeler birbirinden keskin bir şekilde ayrılmıyor, fakat 4 kümenin görselini bu şekilde oluşturmuş olduk. Bu yazımızda bir veri setini görselleştirme teknikleri ile tanımaya ve bazı sorulara cevap bulmaya çalıştık. Ek olarak bir kümeleme algoritmasında görselleştirme teknikleri nasıl efektif bir şekilde kullanılır bunlara değindik. Bir sonraki yazımızda yine Python ile dinamik bir dashboard olşturduğumuz bir web app yapacağız. Veri analizi ve veri manipülasyonu hakkında herhangi bir sorunuz ile ilgili iletişime geçmekten çekinmeyin. Serinin sonraki yazısında görüşmek üzere.

STEM

Adım Adım Veri Görselleştirme: Python Temelleri

Merhaba, veri görselleştirme serimizin ilk bölümünde genel olarak veri tiplerine göre görselleştirme tekniği seçimi ve bu teknikler sayesinde ne tür bilgiler sunabiliyor olduğumuzdan bahsetmiştik. Biraz da görselleri daha etkili hale getirebilecek ve bilgiyi daha güzel sunmaya yarayacak tüyolara değinmiştik. Şimdi serimizin ikinci bölümünde Python dilinde görselleştirme kütüphanelerinden yararlanarak bazı grafiklerin nasıl oluşturulduğuna dair basit örnekler sunuyor olacağız. Görselleri oluştururken kodlar içerisinde hangi parametreler hangi amaçla kullanılır ve görsele nasıl etki eder gibi konulara değineceğiz.

STEM

Adım Adım Veri Görselleştirme

Veri bilgi yolunda elimizdeki en küçük parçadır. Araştırma konumuza dair bilgi elde etmek için gözlemleyerek, ölçerek, sayarak nitelikleri tanımlayacak değerler elde ederiz ve bunlara veri deriz. Bu verileri anlamlandırma süreçlerinden sonra elde ettiğimiz bilgilerle aksiyonlar alır ve mevcut sorunlarımızla daha iyi başa çıkabiliriz.

Scroll to Top