Hilal Baş
Teknopar Akademi
Published in
5 min readMar 10, 2022

--

VERİ GÖRSELLEŞTİRMEK İÇİN GRAFİK SEÇİMLERİ VE PANDAS PROFILING

Büyük Veri dünyasında durmadan üretilen trilyonlarca verinin karmaşıklığı ile her gün önem kazanan veri görselleştirme, veriyi analiz etmek ve veriden anlamlı sonuçlar çıkarabilmek için anlaşılabilir ve erişilebilir çözümler üretmektedir. Veri görselleştirme dünyası bir verideki trendleri, aykırı veya eksik değerleri, eğilimleri bulabilmek için çizelgeler, haritalar, grafikler sunan büyük ve etkili bir dünyadır. Doğru görselleştirme yapabilmek için veriler ile görsellerin birlikte çalışması gerekmektedir. Görselleştirme aşamasından önce veriler için kalite kontrolü yapılmalıdır. Verilerin doğru kalibre edilmemesi veya veri topladığınız cihazdaki arıza durumlarında yanlış değerler elde edilmiş olabilir, yanlış veya aykırı değerler ile yapılan görselleştirmeler veri hakkında yanlış yorumlar yapmanıza neden olabilir bu sebeple görselleştirme öncesinde verinin temizlenme aşamalarından geçmesi gerekmektedir. Bu aşamalar şu şekilde sıralanabilmektedir;

1- Veri kümesindeki özniteliklerden farklı özelliklerin kontrol edilmesi.

2- Sütunlardaki veri türlerinin doğru atandığının kontrol edilmesi.

3- Gerekli sınıflandırmalar için etiket belirlenmesi.

4- Eksik veya aykırı değerlerin tespit edilmesi.

5- Veri kümesinin ne ifade ettiğinin ve hedef değişkenlerin belirlenmesi.

6- Hedef değişken ile diğer öznitelikler arasındaki ilişkilerin gruplanması.

7- Tüm sütunların dağılımını görebilmek adına dağılım grafiklerinin çizilmesi.

8- Kategorik sütunlar için frekans grafiklerinin çizilmesi.

9- Özniteliklerin birbirleri ile ilişkilerinin incelenmesi.

Bu işlemleri yaparken incelemenizin faydalı olacağını düşündüğüm bir görselleştirme ve özetleme modülünden bahsetmek istiyorum. Veri analizi işlemlerinde sıklıkla kullanılan “Pandas Profiling” ile bu aşamaların daha hızlı bir şekilde yapılmasını sağlayabilirsiniz. Değişkenlerinizin türlerini, istatistiksel betimlemelerden olan mod, medyan, ortalama gibi özelliklerini bulabileceğiniz, verilerinizin birbiri ile korelasyonunu görebileceğiniz ve dağılımları size tek bir satırda sunan bu işlem sizi oldukça hızlandıracaktır. Yazının devamında “StudentsPerformanceInExams” adlı veri seti üzerinden örnekler yapılarak ilerleyeceğiz.

import pandas as pd ;import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
from pandas_profiling import ProfileReport
#verilerin yüklenmesi
df=pd.read_csv(‘StudentsPerformance.csv’)
#Pandas Profiling çalıştırılması
profile = ProfileReport(df, title=”Pandas Profiling Report”)
profile
“Pandas Profiling” Özet Tablosu.

Gördüğünüz gibi verimiz saniyeler içinde özetlenmiş oldu. 1000 tane gözlemden oluşan veri setimiz 8 tane öznitelik içermektedir. Ayrıca 5 tane kategorik 3 tane de sayısal öznitelik bulunmaktadır. Kategorik ve sayısal verilerin bilinmesi nasıl bir görselleştirme yapacağınıza karar vermek için oldukça önemlidir.

“Alert” sekmesi, değişkenlerin diğer değişkenlerle korelasyonları, eksik değerleri ve değişkenlerin çarpıklığı ile ilgili her türlü uyarıdan oluşur. Özellikle verilerin korelasyonları hakkında verdiği bilgi ile herhangi 2 verinin hedef değişkeniniz ile aynı korelasyona sahip olması durumunda veri boyutunu küçültebilirsiniz.

“Reproduction” kısmında ise analizinizin başlama ve bitiş tarihlerini süresini içeren bilgiler bulunmaktadır.

Özniteliklerinizi ayrı ayrı incelemek isterseniz her bir öznitelik için size istatistiksel çıkarımlar, histogram bilgileri, aykırı değer bilgileri sunulmaktadır. Örneğin “math score” özniteliğimiz için sunulan istatistiksel özet tablosu aşağıdaki gibidir.

Eğer daha detaylı bir inceleme isterseniz, “Toggle details” kısmından istatistiksel bilgilere, histogram grafiklerine, en çok tekrar eden verilere ve aykırı değerlere ulaşmanız mümkün.

“Interactions” kısmında sayısal değişkenlerinizin birbiri ile ilişkisini görselleştiren bir rapor sunulmaktadır. Örneğin matematik skoru ve yazma skoru arasında doğrusal bir ilişki olduğunu bu grafikten rahatça görebilirsiniz.

Math Score- Writing Score İlişkisi.

“Correlations” kısmında ise size 4 farklı method ile ısı haritaları sunmaktadır. Karmaşık ve çok sayıda öznitelik bulunduran veri setlerinde verilerin birbiri ile ilişkisini görebilmek için bu grafikler çok önemlidir. Örneğin aşağıda Pearson Methodu ile oluşturulan bir korelasyon analizi bulunmaktadır.

“Missing Values” sekmesinde ise her bir öznitelik için kayıp bir veri olup olmadığını gösteren bir miktar grafiği ve matrisi bulunmaktadır.

Son olarak “Sample” bölümünde ise veri setinizin ilk 10 ve son 10 verisini tablo şeklinde size sunmaktadır.

Pandas Profiling ile veriniz hakkında genel bir bilgi sahibi olduktan sonra daha anlamlı sonuçlar çıkarmaya başlayabilirsiniz fakat görselleştirmedeki en önemli konu verilerinizi özetlemek için hangi grafiği kullanacağınızı seçebilmektir. Yazının bu kısmında amacınıza yönelik grafik seçimine yardımcı olmaya çalışacağım.

1-İki farklı değişken arasındaki ilişkiyi incelemek ve ilgili iki değişken arasında direkt olarak bir bağlantı olup olmadığını görmek için dağılım grafiği (scatter plot) kullanabilirsiniz.

sns.scatterplot(data=df, x=’math score’, y=’writing score’)
sns.scatterplot(data=df, x='math score', y='reading score',color="pink")

2-Bir süre aralığındaki kesintisiz ve sürekli gelişmeleri görmek istiyorsanız histogram grafikleri uygun olacaktır. Histogram verilerinizin nerede yoğunlaştığını, maksimum ve minimum noktalarını ve eğer varsa aykırı değerlerin olup olmadığını tahmin etmenize yardımcı olacaktır. Ayrıca verinin olasılık dağılımı hakkında genel bir bilgi edinmenizi sağlayacaktır.

sns.histplot(df, x=’math score’, hue=’gender’, element=’step’)

3-Eğer kutu grafiği ve yoğunluk grafiğinin bir arada bulunduğu bir gösterim şekli isterseniz keman grafiği (Violin Plot) birden fazla istatistiksel çıkarım yapmanızı ve gruplar arasındaki sayısal değerlerin karşılaştırılmasını sağlayacaktır.

sns.set_style(‘whitegrid’)
sns.violinplot(x = ‘reading score’, data = df)

4-Nicel verilerinizi görsel olarak ifade etmek ve merkezi eğilim ölçülerinin ve dağılımını tek boyutta ifade etmek isterseniz Kutu grafiği (Box-Plot) kullanabilirsiniz.

5-Son olarak çok miktarda karşılaştırmalı verinin görsel özetine ihtiyaç duyarsanız ısı haritası grafiklerini (heatmap) kullanarak verilerinizin arasındaki korelasyonu inceleme fırsatı bulabilirsiniz.

df_corr = df.corr()
sns.heatmap(df_corr, annot=True)

Özetle, veri görselleştirmeye yeni başladıysanız önemli olanın amacınıza göre doğru grafiğin seçilmesi olduğunu bir kez daha hatırlatmak isterim. Eğer grafiklerin istatistiksel çıkarımlarını, yorumlarını doğru bir şekilde yapabiliyorsanız elinizdeki veriler herkes için çok daha anlamlı olacaktır. Sonraki yazılarda görüşmek üzere.

Kaynakça

  • https://www.kaggle.com/ayessa/data-visualization-studentsperformanceinexams/notebook
  • Protopsaltis, Antonis, et al. “Data visualization in internet of things: tools, methodologies, and challenges.” Proceedings of the 15th International Conference on Availability, Reliability and Security. 2020.
  • Fahad, SK Ahammad, and Abdulsamad Ebrahim Yahya. “Big data visualization: allotting by r and python with GUI Tools.” 2018 International Conference on Smart Computing and Electronic Enterprise (ICSCEE). IEEE, 2018.

--

--

Hilal Baş
Teknopar Akademi
0 Followers
Writer for

I am a 4th year Industrial Engineering student at TOBB University of Economics and Technology. I work in data science, data analysis and data visualization.