Makine Öğrenmesi - Genel Konular

Sütunların Korelasyonu

Yayın tarihi :13-Oca-22
Bölüm kodlarını ve/veya veri setlerini indir.

Sütunların birbirleri ile korelasyonunu hesaplamak için "Pandas" kütüphanesi kullanılır. Korelasyon işleminde boş değerler (NaN) hariç tutularak hesaplama işlemi yapılır. Ayrıca korelasyon işlemi yapılırken sayısal veriler haricindeki veri türleri (Örn: object) hesaba katılmayacaktır.

İki sütunun birbiri ile korelasyonunun mutlak değerleri;

  • 0-0.20 arasındaki değerler birbirleri ile ilişkisinin olmadığı ya da çok zayıf ilişki olduğunu gösterir.
  • 0.20-0.39 arasındaki değerler zayıf ilişki
  • 0.40-0.59 arasında ise orta düzeyde ilişki
  • 0.60-0.79 arasında ise yüksek düzeyde ilişki
  • 0.80-1.0 ise çok yüksek ilişki olduğunu gösterir.

0-0.20 değerlerin altında olan korelasyon ilişkileri çok düşük değerlerde olduğu için ve 0.90 üzerinde olan korelasyon ilişkileri de birbirini tekrarladığı için bu sütunlar işleme alınmayabilir. Örneğin; bir sütunda evin yapılış tarihi 2013 olarak belirtiliyorken, diğer sütunda da evin 9 yaşında olduğu belirtiliyorsa bu sütunlar birbirlerinin tekrarıdır ve korelasyon değerleri de çok yüksek çıkacaktır. 

Korelasyon katsayısı matematiksel olarak [-1,1] arasında değerler alır. Burada bulunan negatif değerlerin nedeni sütunların birbirleri ile ters ilişkisinin olduğunu gösterir. Örnek olarak, bir araba fiyatı ile kilometre değerinin ters oranda olması gibi, arabanın kilometre değeri düşük olursa fiyatının da artması beklenir.

Kullanımı: DataFrame.corr() 

Örnek-1: Araba fiyatlarını gösteren "cars.xls" veri seti sütunlarının birbirleri ile olan korelasyonlarını inceleyelim.

#Kütüphaneler import edildi
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#Veri seti okunur
df=pd.read_excel("cars.xls")
df.head()

Çıktı:

#Tüm veri setinin korelasyonu
df.corr()

Çıktı:

Çıkan tabloyu yorumlamak gerekirse; dikeyde bulunan değişkenlerle yatayda bulunan değişkenlerin kesiştikleri noktalar korelasyon değerini verecektir. Örnek olarak;

  • Price ile Mileage'nin korelasyon değeri -0.143051
  • Doors ile Cruise'nin korelasyon değeri -0.047674
  • Tüm değişkenlerin kendisi ile korealasyon değeri 1 dir.

Sadece Price sütununun diğer sütunlarla korelasyon değerini listeleyelim:

df.corr()["Price"]

Çıktı:

Price       1.000000
Mileage    -0.143051
Cylinder    0.569086
Liter       0.558146
Doors      -0.138750
Cruise      0.430851
Sound      -0.124348
Leather     0.157197
Name: Price, dtype: float64

Price sütununu etkileyen değişkenleri büyükten küçüğe sıralamak için mutlak değer sonuçlarına bakmak gerekecektir.

abs(df.corr()["Price"]).sort_values(ascending=False)

Çıktı:

Price       1.000000
Cylinder    0.569086
Liter       0.558146
Cruise      0.430851
Leather     0.157197
Mileage     0.143051
Doors       0.138750
Sound       0.124348
Name: Price, dtype: float64

Price değişkenini en çok etkileyen değişkenin Cylinder, en az etkileyen ise Sound olduğu görülmüş oldu.

Korelasyon değerlerini grafiksel olarak da görebiliriz: Koyu renkten açık renge doğru korelasyon değerlerinin artacağı gözlemlenecektir.

sns.heatmap(df.corr(),annot=True,linewidths=2)

Çıktı:


Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.