Cemre Acar
Python ile Aykırı Gözlem Analizi

Python ile Aykırı Gözlem Analizi

Bu yazımda Kaggle üzerinden ulaşabileceğiniz bir veri seti üzerinde Python ile Aykırı Gözlem Analizi gerçekleştireceğim. Daha önce veri ön işleme’nin ne olduğuna ve aykırı gözlem, eksik veri gibi kavramlara değinmiştim. Okumadıysanız Veri Ön İşleme Nedir ? Veri Temizleme adlı yazımı okumanızı tavsiye ederim.
İlk olarak veri setinden bahsetmek istiyorum. Kaggle üzerinde Avokado incelemelerini baz alan bir veri seti mevcut yazının en sonunda ayrıca linkini de paylaşacağım. Bu veri setindeki AveragePrice yani Fiyat değişkeninde bir Aykırı Gözlem Analizi yapacağız. Aykırı verilere nasıl ulaşabiliriz bunu görmüş olacağız.
Yukarıda linkini verdiğim yazımda IQR’den bahsetmiştim. Türkçeye Çeyrekler Açıklığı olarak geçen bu yöntem ile elimizdeki veri setinde belirli bir değerin altında ya da üstünde kalan tüm değerler bizim Aykırı Gözlemimiz olacak.
Haydi başlayalım !

Kütüphaneleri Dahil Edelim

import numpy as np
import pandas as pd
import seaborn as sns

Veri Setini Dahil Edelim

my_dataset = pd.read_csv("/Users/cmracar/Desktop/avocado.csv")
my_dataset.head()

Dataset_head()


islenmemis_fiyatlar = my_dataset['AveragePrice']
islenmemis_fiyatlar.max()

Sonuç : 3.25

islenmemis_fiyatlar.min()

Sonuç : 0.44

IQR - Interquartile Range (Çeyrekler Açıklığı) ile Sınır Değer Belirleme

Veri Ön İşleme Nedir ? Veri Temizleme adlı yazımda değindiğim Çeyrekler Açıklığını şimdi kullanıyor olacağız. Veri Görselleştirme yazılarında değindiğim BoxPlot ile aykırı değerlerimizi gözlemleyebiliyorduk. Burada yapacağımız işlem bunu gözlemleyebilmemizin manuel yolu. İlk olarak 1. çeyrek ve 3. çeyrek değerlerini belirlememiz gerekiyor. 

Q1 = islenmemis_fiyatlar.quantile(0.25)
Q3 = islenmemis_fiyatlar.quantile(0.75)

Şimdi de IQR elde etmek için 2 değeri birbirinden çıkarıyoruz.

IQR = Q3 - Q1

Çeyrekler Açıklığı formulüne göre fiyat skalamızdaki düşük fiyatlar ve yüksek fiyatlar sınırlarını aşağıdaki şekilde belirliyoruz.

düsük_fiyatlar = (Q1 - (1.5*IQR))
yüksek_fiyatlar = (Q3 + (1.5*IQR))


Böylelikle sınır değerlerini belirlemiş olduk. İsterseniz bir de BoxPlot grafiği ile bu yaptığımızın doğruluğuna bir göz atalım.

sns.boxplot(x=islenmemis_fiyatlar);

BoxPlot Aykırı Gözlem

Görüldüğü gibi alt sınır skalamız 0.5'in altında ve üst değer skalamız 2.5'in neredeyse üzerinde gözüküyor. Şimdi bizim yukarıda belirlediğimiz değerlere bir bakalım.

düsük_fiyatlar

Sonuç : 0.26000

yüksek_fiyatlar

Sonuç : 2.49999

Son olarak aykırı değerlerimize ulaşmak kaldı.



Hariç Tutulan (Aykırı) Verileri Belirleyelim

Bunu yapabilmemiz için belirlediğimiz sınır değerlerini kullanacağız. İstediğimiz şey veri setimizdeki fiyatlar değişkenimiz'in düsük_fiyatlar değişkenimizden daha düşük ya da veri setimizdeki fiyatlar değişkenimiz'in yüksek_fiyatlar değiikenimizden daha yüksek olmasıdır. Bu sayede aykırı değerlerimizi listelemiş olacağız.

islenmemis_fiyatlar[((islenmemis_fiyatlar < düsük_fiyatlar) | (islenmemis_fiyatlar > yüksek_fiyatlar))]

Bu işlemin ardından karşımızda aykırı değerlerimizi görmüş olduk. Bu işlemi shape özelliği ile de kontrol ettiğimizde elimizde 209 adet aykırı gözlem olduğunu görebiliriz.

islenmemis_fiyatlar[((islenmemis_fiyatlar < düsük_fiyatlar) | (islenmemis_fiyatlar > yüksek_fiyatlar))].shape

Yazımda eksik ya da hatalı gördüğünüz kısımları yorumlarda belirtebilirsiniz. Sağlıkla Kalın.

Kaynak (Interquartile) - Kaynak (Interquartile) - Kaynak(Kaggle Veri Seti)

Heyy ! Blog'a abone olup yazılarımdan ilk sen haberdar olmak ister misin ?

ABONE OL!

Yorumlar

Yorum Ekle

Yorumunuz onaylandıktan sonra yayınlanacaktır.