Makine Öğrenmesi — Veri Ön İşleme #5

Ufuk Çolak
7 min readMay 30, 2021

Herkese merhaba! Bir önceki yazımda makine öğrenmesi modellerinde yanlılık ve varyans ilişkisini incelemiştik. Bu yazıda veri ön işleme adımlarını inceleyeceğiz.

Veri Ön İşleme (Data Preprocessing)

Makine öğrenmesi modellerini kurma aşamasında olmazsa olmaz en önemli adımlardan biridir. Veriyi temizleme, dönüştürme ve modele uygun hale getirme adımları yapacağımız işin büyük bir bölümünü oluşturmaktadır. Birden çok kaynaktan toplanan veriler genellikle organize edilmemiş biçimde bulunurlar. Bu modellerin tahmin performansını etkileyen bir durumdur. Bu nedenle, makine öğrenimi modellerini eğitmeden, değerlendirmeden ve kullanmadan önce ham veriler değiştirilmelidir.

Bu yazıda aşağıdaki maddeleri inceliyor olacağız.

  • Veri Temizleme Süreçlerinin Önemi
  • Dağınık Veriler
  • Aykırı Gözlem Analizi

Önem açısından baktığımızda Veri mi yoksa Model mi sorusuna hemen hemen büyük bir çoğunluğumuz Veri olarak yanıt veririz.

Algoritmalar operasyonel olarak iyi anlaşılsa da, çoğunun neden çalıştıkları veya algoritmaları problemlerle nasıl eşleştirecekleri hakkında tatmin edici teorileri yoktur. Bu nedenle tahmine dayalı (Predictive) modelleme projeleri teorik olmaktan çok deneyseldir ve veriler üzerinde algoritmaların sistematik olarak denenmesi sürecini gerektirirler.

Günümüzde Makine öğrenmesi algoritmalarının otomatikleştiği düşünülecek olursa, projeden projeye değişen tek şey modellemede kullanılan verilerdir. Bu yüzden cevabımız kesinlikle veri olacaktır.

Veri kalitesi, veri yönetimindeki en önemli sorunlardan biridir, çünkü kirli (dirty) veriler genellikle yanlış veri analitiği sonuçlarına ve yanlış iş kararlarına yol açmaktadır.

Bu nedenle, projelerde zamanımızın çoğu verilere harcanacaktır. Veri toplama, verileri doğrulama, verileri temizleme, verileri görselleştirme, verileri dönüştürme vb.

Gelin kısaca bu yöntemlerin detaylarını inceleyelim.

Veri Temizleme (Data Cleaning/CIeansing)

Veri temizleme, herhangi bir makine öğrenmesi projesinde kritik derecede önemli bir adımdır. Bu süreç, dağınık verilerdeki sistematik sorunları veya hataları düzeltmeyi içerir. Dağınık verilerde, verilerin yanlış yazılması, bozulması, çoğaltılması vb. gibi yanlış değerlere sahip olma durumu vardır. Örneğin, veride atletlerin uzun atlama bilgileri tutuluyor olsun. Bir kişinin 50 metre atlaması gibi bir durum söz konusu olamayacağı için veri hatalı bilgi içerir. Bir başka örneği düşünecek olursak, veri seti içinde cinsiyeti erkek olan bir değişkenin hamilelik durumunun evet olması verinin hatalı olduğunu gösterir.

Veri temizleme işlemlerini belirlemek için kullanabileceğimiz birçok farklı istatistiksel analiz ve veri görselleştirme tekniği vardır. Bunlar o kadar temeldir ki, genellikle çoğu deneyimli makine öğrenmesi uygulayıcıları tarafından bile gözden kaçırılır, ancak o kadar kritiktir ki, atlanırsa modellerin performansında bozulmalara yol açabilir.

Dağınık, gürültülü, bozuk veya hatalı gözlemler belirlendikten sonra bunlar ele alınmalıdır.

Bu, bir satırın veya sütunun kaldırılması şeklinde olabilir. Alternatif olarak, yeni gözlemler değerleri ile değiştirmek olabilir. Bu nedenle, gerçekleştirilebilecek işlemleri aşağıdaki örnekleyebiliriz.

  • Normal verileri tanımlamak ve aykırı değerleri belirlemek için özet istatistikleri kullanmak
  • Aynı değere sahip olan veya varyansı 0 olan sütunların belirlenmesi ve kaldırılması
  • Yinelenen veri satırlarını belirleme ve bunları kaldırma
  • Boş değerleri eksik olarak işaretleme
  • İstatistikleri veya eğitilmiş bir model kullanarak eksik değerleri doldurmak

Veri temizleme, diğer veri hazırlama işlemlerinden önce tipik olarak ilk gerçekleştirilen işlemdir.

Dağınık Veriler (Messy Datasets)

Bir veri kümesi birçok hata türü içerebilir. Fazla bilgi içermeyen sütunlar ve yinelenen satırları içeren veriler bunların en başında gelmektedir.

Tek bir gözlemi veya değeri olan sütunlar, muhtemelen modelleme için işe yaramayacaklardır. Bu sütunlar veya tahmin edicilerin varyansı (ortalama değerden ne kadar uzaklaştığını gösterir) sıfır olur.

Bir tahmin edici tek bir değer içerdiğinde, buna sıfır-varyanslı tahmin edici diyoruz çünkü tahmin edici tarafından görüntülenen gerçek bir varyansı yoktur. Bu tip, tek bir değere sahip değişkenler veya sütunlar veri setinden kaldırılmalıdır.

Tek bir gözlemi barındıran verilerin yanı sıra bazı sütunlar çok az benzersiz değere sahip olabilir. Örneğin, yalnızca 1, 3 ve 5 değerlerini içeren bir değişkenimiz olsun. Bu, sıralı veya kategorik değişkenler için anlamlı olabilir. Ancak bu durumda, veri kümesi yalnızca sayısal değişkenler içerir. Bu değişkenin, varyansları sıfır değil ancak sıfıra yakın çok küçük bir sayı olacaktır. Bu değişkenleri modelden atmak çözüm olmayacaktır çünkü model performansına az da olsa katkı sağlayabilirler. Bu noktada, etkisine bakılarak ne yapılacağına karar verilebilir.

Aynı verilere sahip olan satırlar da modelleme sürecinde yararsız olabilirler. Burada, yinelenen satırdaki verilerin, her sütunda aynı şekilde olması durumu söz konusudur. Tekrar eden verileri kaldırmak, veriyi doğru bir şekilde kullanılabilmesini sağlamada önemli bir adım olacaktır. Bu satırlar model performansında yanıltıcı etkiye neden olabilirler.

Aykırı Gözlem (Outlier Analysis)

Veride genel eğilimin oldukça dışına çıkan ya da diğer gözlemlerden oldukça farklı olan gözlemlere aykırı veya uç gözlem denir. Veri işleme aşamalarında karşılaşacağımız ciddi problemlerden birisidir. Özellikle veri boyutu küçükse, değerleri aceleyle çıkarmamaya veya değiştirmemeye büyük özen göstermeliyiz.

Aykırı değerlerin aşağıdakiler gibi birçok nedeni olabilir

  • Ölçüm veya giriş hatası
  • Veri bozulması
  • Gerçek aykırı gözlem

Peki aykırı değerler neye sebep olur? Genellenebilirlik kaygısı ile oluşturulan kural setlerini ya da fonksiyonları yanıltır, Yanlılığa yani model tahminlerinde hataya sebep olabilmektedirler.

Yukarıdaki grafikte bir modelin aykırı gözlem içeren ve aykırı gözlem silinmiş hali gösterilmiştir. Buna göre, aykırı gözlem silindikten sonra model eğrisinin gözle görülür şekilde değiştiği görülmektedir.

Bir değerin aykırı olup olmadığına karar vermede aşağıda yer alan yönetemler kullanılabilir.

Sektör Bilgisi

Her veri kümesinin kendine özgü özellikleri nedeniyle genel olarak aykırı değerleri belirlemenin kesin bir yolu yoktur. Bu noktada sektör bilgisini kullanarak gözlemin aykırı olup olmadığına karar verebiliriz. Örneğin 17 haneli Kredi Kartı numarasına (genellikle 16 hane) sahip bir kaydı modellemeye dahil etmemeliyiz. Çünkü biz model kurarken amacımız genellenebilir ve veri seti içindeki yapıları temsil etme kabiliyeti yüksek ve yansız modeller oluşturmaktır. Eğer kurulan modelin bir genelleme kaygısı varsa; zaten çok seyrek olan ve genele uymayan yapılar çalışmanın dışında bırakılmalıdır.

Standart Sapma Yaklaşımı

Ortalamanın üzerinde dağılımın dışında kalan değerleri tespit etmek için uygulanır. Bir değişkenin ortalamasının üzerine aynı değişkenin standart sapması hesaplanarak eklenir. 1,2 ya da 3 standart sapma değeri ortalama üzerine eklenerek ortaya çıkan bu değer eşik değer olarak düşünülür ve bu değerden yukarıda ya da aşağıda olan değerler aykırı değer olarak tanımlanır. Örneğin ev fiyatlarını düşünelim, evlerin ortalaması alınır ve ortalaması üzerine standart sapma değeri eklenir.

Eşik Değer = Ortalama + 1 * Standart Sapma

Eşik Değer = Ortalama + 2 * Standart Sapma

Eşik Değer = Ortalama + 3 * Standart Sapma

Z- Skoru Yaklaşımı

Standart sapma yöntemine benzer şekilde çalışır. Değişken standart normal dağılıma uyarlanır, yani standartlaştırılır. Sonrasında — örneğin — dağılımın sağından ve solundan +-2,5 değerine göre bir eşik değer konulur ve bu değer üzerinde ya da altında olan değerler aykırı değer olarak işaretlenir.

Boxplot (Interquartile Range — IQR) Yöntemi

En sık kullanılan yöntemlerden birisidir. Değişkenin değerleri küçükten büyüğe sıralanır. Çeyrekliklerine (yüzdeliklerine) yani Q1 (25. yüzdelik dilim) ve Q3 (75. yüzdelik dilim) değerlerine karşılık değerler üzerinden bir eşik değer hesaplanır ve bu eşik değere göre aykırı değer tanımı yapılır.

IQR= 1.5 * (Q3 — Q1)

Alt Eşik Değer= Q1 — IQR

Üst Eşik Değer= Q3 + IQR

Özetle elimize bir veri seti geldiğinde, bu veri setinin değişkenlerini olduğu şekilde bırakıp modelleme yapmak yerine veri seti içerisindeki değişkenlerin aykırılık durumu, eksik gözlem durumu vb. durumları incelememiz gerekmektedir. En önemlilerinden birisi Aykırı Gözlem. Neden? Çünkü göz önünde bulundurulmadığı takdirde modeldeki doğrunun yönünü dahi değiştirebilmektedir. Genelde 1 ve 4. maddeyi kullanarak bu sorunu çözmeye çalışacağız.

Model değişkenlerine göre Aykırı gözlem belirleme yöntemleri;

Tek değişken üzerinden yapılacak ise eğer boxplot grafiği ile tespit etmek uygun olacaktır. Belirlenen aykırı değerler için ise aşağıdaki 3 yöntemi kullanacağız;

  • Silme Yöntemi (Değerler veriden çıkarılır.)
  • Ortalama Yöntemi (Değerler değişkenin ortalama değerine eşitlenir)
  • Baskılama Yöntemi (Değerler Alt veya Üst sınır değerine eşitlenir.)

Birden fazla değişken üzerinde yapılacak ise eğer Local Outlier Factor (LOF) yöntemi kullanılır. Bu yöntemde, gözlemleri bulundukları konumda yoğunluk tabanlı skorlayarak buna göre aykırı değer olabilecek değerleri tanımlayabiliriz. Bir noktanın local yoğunluğu bu noktanın komşuları ile karşılaştırılıyor. Eğer bir nokta komşularının yoğunluğundan anlamlı şekilde düşük ise bu nokta komşularından daha seyrek bir bölgede bulunuyordur yorumu yaparız. Yani bir değerin çevresi yoğun değilse bu değer aykırı değer olabilir çıkarımı yaparız. Burada belirlenen katsayı üzerinden yukarıdaki işlemlerin aynısı yapılabilir.

Bu yazıda modelleme öncesi veri ön işleme süreçlerinin önemini, dağınık verileri temizlerken nelere yapabileceğimizi ve aykırı gözlem tespiti ve yapılması gerekenler üzerinde durduk. Gelecek yazıda eksik veriler ve veri dönüşümü ile devam edeceğiz.

--

--