Veri Görselleştirme Temel Bilgi
Veri Görselleştirme Temel Bilgi
Veri Nedir?
Bilginin yapılandırma ile kayıt altına alınıp, kolay analiz edilebilmesi için bir araya getirilmesidir. Bir veya birden fazla bilgiden oluşan kümedir. Genellikle araştırma, gözlem, deney, sayım, ölçüm gibi yoluyla elde edilir.
Veri Görselleştirme Nedir?
Verilerin nicel tanımlamalarına ve tahminlerine odaklanan uygulamalı istatistik ve makine öğreniminde önemli becerilerden biridir.
Veri görselleştirme, ilişkileri ifade etmek ve basitçe göstermek için kullanılır.
Veri Görselleştirmesinin Avantajları
- Daha İyi Analiz: Veri tablolarında gözden kaçan unsurları, trendleri ve dağılımları incelemede oldukça etkilidir.
- Hızlı Aksiyon: Veri görselleştirmeleri, verilerin hızlı bir şekilde anlamlandırılmasına ve yorumlanmasına olanak sağlar.
- Örüntülerin Tanımlanması: Büyük miktarlardaki karmaşık veriler, görselleştirildiklerinde iç görüler için kolaylık sağlayabilir ve veriler arasındaki ilişkilerin bulunmasına olanak tanır.
- Hata bulma: Görselleştirmek, verilerdeki hataları hızlıca belirlemenize yardımcı olur. Veriler yanlış örnekler bulundurma eğilimindeyse, görselleştirilerek hızlıca tespit edilebilir.
Veri Türleri
Veri türleri Sayısal Veriler ve Kategorik Veriler olmak üzere ikiye ayrılır:
Sayısal Veri Türleri:
- Integer: Kesirli kısmı olmayan tam sayılar.
- Float: Ondalık sayılar.
Kategorik Veri Türleri:
- Nominal: Sıralama içermeyen etiketler.
- Ordinal: Sıralama içeren etiketler.
- Boolean: True ve False değerleri
Görselleştirme Tipleri
Line Plot
Çizgi grafiği, temel olarak iki sayısal değer kümesi arasındaki ilişkiyi göstermek için kullanılır. Genellikle, iki bağımlı değişken arasında artan veya azalan bir eğilim göstermek için uygundur.
xxxxxxxxxx
# -------------------------------------------------
# Gerekli kütüphaneler
import seaborn as sns
import matplotlib.pyplot as plt
# seaborn kütüphanesi sayesinde internet üzerinde bulunan veri setlerini kullanmamızı sağlar.
iris = sns.load_dataset('iris')
# Veri seti hakkında bilgi sahibi olmak için kullanılır.
print(iris.head())
# lineplot'un uygulanması;
# Verisetimizi ve ilgilendiğimiz sütunu belirtiyoruz. İsteğe göre renk tonu (hue) da belirtilebilir.
sns.lineplot(data=iris, y='petal_length', x=iris.index, hue='species')
# Grafiği ekranda gösterir.
plt.show()
# -------------------------------------------------
Not: Çizgi grafikleri, gözlemler arasında bir sıralamanın olduğu herhangi bir dizi verisinin yanı sıra zaman serisi verilerinin sunulması için kullanışlıdır.
Scatter Plot
Bir Dağılım grafiği, esas olarak iki sayısal grup arasındaki ilişkiyi dağınık noktalar şeklinde çizmek için kullanılır. Grafikteki her nokta tek bir gözlemi temsil edecek şekilde gösterilir:
- X ekseni örneğin bir özelliğini temsil eder.
- Y ekseni, aynı örneğin farklı bir özelliğini temsil eder.
xxxxxxxxxx
# -------------------------------------------------
# Gerekli kütüphaneler
import seaborn as sns
import matplotlib.pyplot as plt
# İnternet üzerinde bulunan veri setinin yüklenmesi işlemidir.
iris = sns.load_dataset('iris')
# Şekil ve birden çok eksen oluşturmak için plt.subplots() kullanılır.
# 'figsize' parametresini satır ve sütun sayısını belirtmek için kullanırız.
fig, ax = plt.subplots(figsize=(10,5))
# scatter'ın uygulanması: x ve y eksenleri belirtilir.
ax.scatter(iris['sepal_length'],iris['sepal_width'])
# Grafik ve eksenler isimlendirilir.
ax.set_title('Iris DataSet')
ax.set_xlabel('Sepal Length')
ax.set_ylabel('Sepal Width')
plt.show()
# -------------------------------------------------
Scatter Plot Olası Hatalar
Veri boyutunun yüksek olduğu durumlarda "overplotting" en sık görülen hatadır. Yani veriler bir miktardan sonra üst üste binmeye başlayacak ve bu durum verilerin doğru analiz edilmesini önleyecektir.
Çözüm Yolları:
- Verileri temsil eden noktaların alanını küçültmek.
- Her bir nokta için opaklık değerini düşürmek. (Saydamlık değerini %30, %20 yapmak gibi)
Bar Plot
Çubuk grafiği; toplam, ortalama, medyan vb. gibi bir toplama işleviyle gruplanmış kategorik bir sütundaki benzersiz değerler arasındaki ilişkiyi çizmek için kullanılır.
- Kategorik değerler x ekseni olarak iletilir ve karşılık gelen toplu sayısal değerler y ekseninde iletilir.
- Farklı kategorideki verileri karşılaştırmak için kullanılır.
- Grafiğin bir ekseni karşılaştırılmakta olan belirli kategorileri gösterir ve diğer eksen ölçülen bir değeri temsil eder.
Not: Çubuk grafiğinin histogram ile karıştırılmaması gerekir! Bar Plot'lar kategorik, histogramlar ise sürekli değerler için kullanılır.
xxxxxxxxxx
# -------------------------------------------------
# Gerekli kütüphaneler
import seaborn as sns
import matplotlib.pyplot as plt
# Veri setinin yüklenmesi
iris = sns.load_dataset('iris')
# İşlemi sırasıyla yazacak olursak;
# iris değişkenindeki veri setini 'species' değerlerine göre grupluyor.
# Her grubtaki her sütunun ortalamasını hesaplıyor.
# Çıkan sonuçtan sadece 'sepal_length' sütununu data değişkenine atıyor.
data = iris.groupby(by='species').mean()['sepal_length']
# barplot'un uygulanması: x ve y eksenleri belirtilir.
ax = sns.barplot(x=data.index, y=data.values)
# Grafif ve y ekseninin isimlendirilir.
ax.set_title('Sepal Length Means')
ax.set_ylabel('Mean')
plt.show()
# -------------------------------------------------
Histogram
Histogram'lar temel olarak sayısal bir öğe listesinin veri dağılımını görüntülemek için kullanılır.
Verilerin sürekli bir aralık veya belirli bir süre boyunca dağılımını gösteren bir veri görselleştirme grafiğidir.
- X ekseninde gösterilen sürekli değişken, ayrık aralıklara bölünür ve o ayrık aralıkta sahip olduğunuz veri sayısı, çubuğun yüksekliğini belirler.
- Histogram'lar, değerlerin nerede yoğunlaştığını, uç noktaların neler olduğunu ve veri kümesinde herhangi bir boşluk veya olağandışı değerler olup olmadığı konusunda bir tahmin verir.
Not: Doğru histogram oluşturmak için kutuların kaç birimlik alanlara bölünmesini aşağıdaki formül ile buluruz.
xxxxxxxxxx
# -------------------------------------------------
# Gerekli kütüphaneler
import seaborn as sns
import matplotlib.pyplot as plt
# Veri setinin yüklenmesi
iris=sns.load_dataset('iris')
# histogram'un uygulanması: veri seti ve x ekseni belirtilir.
# 'bins' (kutu alanlarının bölüneceği birim) değeri belirtilir.
sns.histplot(data=iris, x='sepal_width',bins=10)
plt.show()
# -------------------------------------------------
Pie Charts
Pasta grafikler, kategorik bir sütundaki değerlerin yüzde dağılımını gösterir.
- Bir bütünün parçaları arasındaki ilişki, açık halde görülebilir.
- Grafiğin parçaları, her kategorideki bütünün kesri ile orantılıdır.
xxxxxxxxxx
# -------------------------------------------------
# Gerekli kütüphaneler
import matplotlib.pyplot as plt
import numpy as np
# değerler
y = np.array([35, 25, 25, 15])
labels=["Apples", "Bananas", "Cherried", "Dates"]
# pie'ın uygulanması
plt.pie(y, labels=labels)
# Grafiğin ekranda gösterilmesi
plt.show()
# -------------------------------------------------
Heatmap
Matrisin değerini görselleştirmek için renkleri kullanarak verilerin grafiksel bir temsilidir. Daha yoğun değerler için daha parlak, az yoğun değerler için daha koyu renkler tercih edilir.
Korelasyon haritalarında veya karmaşıklık matrislerinde sıkça kullanılır.
xxxxxxxxxx
# -------------------------------------------------
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
# print(iris.corr())
# heatmap'ın uygulanması
# annot=True: kutu içerisindeki yüzdeliklerin gösterilmesini sağlar.
sns.heatmap(iris.corr(), annot=True)
plt.show()
# -------------------------------------------------
Box Plot
Genellikle gruplar arasında bir veri dağılımını göstermenin görsel bir temsilidir. En basit Box plot çizimleri, minimumdan maksimuma tüm varyasyon aralığını, olası varyasyon aralığını ve aykırı değerleri gösterir. Box plot beş parçadan oluşur;
- minimum
- ilk çeyrek
- medyan (ikinci çeyrek)
- üçüncü çeyrek
- maksimum
xxxxxxxxxx
# -------------------------------------------------
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
# boxplot'un uygulanması; veri setinin belirlenmesi ve x-y eksenlerinin isimlendirilmesi
sns.boxplot(data=iris,y='sepal_length', x='species')
plt.show()
# -------------------------------------------------