Makine Öğrenmesi — Eksik Veri ve Veri Dönüşümü #6

Ufuk Çolak
4 min readJun 6, 2021

Herkese merhaba! Bir önceki yazımda makine öğrenmesi modellerinde veri ön işleme adımlarını incelemeye başlamıştık. Bu yazıda eksik veri ve veri dönüşüm metotlarını inceleyeceğiz.

Eksik Veri Analizi (Missing Data Analysis)

Eksik Veri nedir?

İncelenen veri setindeki gözlemlerde eksiklik olması durumunu ifade etmektedir. Veriler, kaydedilmemiş gözlemler ve veri bozulması gibi çeşitli nedenlerle eksik değerlere sahip olabilir. Gerçek dünya verileri de genellikle eksik değerlere sahiptir. Bu noktada birçok makine öğrenmesi algoritması eksik değerlere sahip verileri desteklemediğinden, modelleme adımından önce eksik verilerin işlenmesi oldukça önemlidir. İşleme adımlarında eksik veri içeren satırlar komple silinebilir veya doldurulabilir. Tabi bu çözümlerin yol açtığı bazı durumlar ortaya çıkabilir.

Eksik Veriyi Direkt Silmenin Zararları

Eksik verileri silmeden önce veri setindeki eksikliğin yapısal bir eksiklik olup olmadığına bakmak gerekir. Eğer bu durum yapısal meydana gelmiş ise eksik verileri silmek modelde yanlılığa sebep olabilir.

Örneğin müşterilerimize ilişkin bilgilere bakalım. Rastlantısal olarak mı yoksa yapısal olarak mı ortaya çıktı onu tespit etmeye çalışıyoruz. Yapısaldan kastımız başka bir değişkenle ilişkili bir sonuç mu değil mi inceliyoruz. Müşterimizin kredi kartı harcaması NA değerini aldığını varsayalım. Bu noktada müşterinin Kredi Kartı Sahipliğine ilişkin başka bir kolonda sahip olmadığı bilgisi olduğunu düşünelim. Burada kredi kartı olmayan müşterinin harcama bilgisini ortalama yöntemiyle dolduramayız.

NA her zaman eksiklik anlamına gelmez!

Önceki örnekten yola çıkarak Müşterinin harcamasının yine NA olduğunu ve Kredi Kartı sahipliği kolonunda sahip olduğunu düşünelim. Burada belki de müşteri ilgili gözlemde harcama yapmadığı veya ölçüm yapılmadığını gösterebilir. Onun için NA her zaman atılmalı gibi düşünmemeliyiz.

Bilgi kaybı!

Örneğin 100 değişkenli veri setimiz var diyelim. Tüm gözlemler içerisinden 1 tane gözlemde eksiklik var diyelim. Bu noktada eğer bu kolonu silersek bilgi kaybı yaşamış oluruz.

Eksik verinin rassallığını test etmek için özet istatistikler, korelasyon testleri ve görselleştirme teknikleri kullanılabilir.

Eksik Veri Problemi Nasıl Giderilir?

Silme Yöntemleri: Yukarıda da bahsettiğimiz gibi bilgi kaybına yol açmayacak şekilde, eksikliğini saptamış olduğumuz değişkenin içerisinde %70 civarında eksiklik varsa bu değişkeni veya gözlem birimi veriden sileceğiz. Çünkü bu durumun bize yararı olmayacaktır.

  • Gözlem ya da değişken silme yöntemi
  • Liste bazında silme yöntemi (Listwise Method)
  • Çiftler bazında silme yöntemi (Pairwise Method)

Değer Atama Yöntemleri: Eksikliğini saptamış olduğumuz gözlemleri doldurmak oldukça basit ve yaygın olan bir yöntemdir. Çeşitli istatistiksel yöntemler kullanılarak yapılır.

  • Ortanca, ortalama, medyan
  • En benzer birime atama (hot deck)
  • Dış kaynaklı atama

Tahmine Dayalı Yöntemler: Eksikliğini saptamış olduğumuz gözlemleri modelleme çalışması yapılarak işlemler gerçekleştirilir.

  • Makine Öğrenmesi
  • EM
  • Çoklu Atama Yöntemi

Veri Dönüşümü (Data Transformation)

Makine öğrenmesi algoritmalarının sayısal girdi değişkenleri kullanarak performans gösterdiğini konuşmuştuk. Bu değişkenler standart bir aralığa ölçeklendiğinde daha iyi performans gösterir. Örneğin veri seti içerisinde müşterilerimizin yaşını, cinsiyetini ve aylık harcama tutarlarını gösteren bilgiler olduğunu varsayalım. Bu değişkenlerin hepsi farklı dağılımdadırlar. Yaş 20,21,22 olabilecekken, harcama tutarları 1000,2000 veya 3000 olabilir. Bu değişkenler ile kurulacak olan makine öğrenmesi modelleri her zaman iyi performans vermeyebilir. Bu noktada gerekli dönüşümlerin yapılması gerekmektedir. Burada, doğrusal regresyon gibi girdinin ağırlıklı toplamını kullanan algoritmaları ve k-en yakın komşular gibi mesafe ölçümlerini kullanan algoritmaları örnek gösterebiliriz.

Modellemeden önce sayısal verileri ölçeklendirmek için kullanılan en popüler iki teknik, normalleştirme ve standardizasyondur.

Normalizasyon, her bir girdi değişkeninin 0 ve 1 aralığında olacak şekilde yeniden ölçeklendirilmesidir. Bu dönüşümün yapılabilmesi için verinin minimum ve maksimum değerlerini bilmemiz gerekir.

Standardizasyon, dağılımı ortalama 0 ve standart sapma 1 olacak şekilde kaydırmak için ortalamayı çıkararak (merkezleme olarak da adlandırılır) ve standart sapmaya bölerek her girdi değişkenini ayrı ayrı ölçeklendirir. Bir başkaya deyişle, bir veri kümesinin standartlaştırılması, gözlenen değerlerin ortalamasının 0 ve standart sapmanın 1 olacağı şekilde değerlerin dağılımının yeniden ölçeklenmesini içerir. Veriden ortalamayı çıkarmaya merkezleme, standart sapmaya bölmeye ise ölçekleme denir. Bu nedenle, yönteme bazen merkezi ölçekleme denir.

Değişken standardize edildiğinde değişkenin kendi içerisindeki bilgi yapısı bozulmaz. Fakat belirli bir standarda oturtulur.

Değişken ilk halinde 120 değerine eşit olduğunu düşünelim ve sıralama olarak da 70. sırada. Bu değişken standartlaştırıldığında bu 120 değeri muhtemelen 0–1 arasında bir değer olacak. Fakat bu değişken yine küçükten büyüğe sıralandığında sıralaması değişmeyecektir. Yani yine 70. sırada yer alacaktır.

Dolayısıyla bir değişken standartlaştırıldığında değişken değeri değişecektir, belirli bir formata sokulacaktır fakat taşımış olduğu yayılım, dağılım bilgisi ve mevcut durumu değişmeyecektir.

Bu yazıda veri ön işleme adımlarından eksi veri analizi ve veri dönüşüm metotları üzerinde durduk. Eksik veriler ile karşılaştığımızda veriden silmek veya başka bir değer ile doldurabileceğimizi öğrendik. Farklı düzeyde bilgi içeren verileri aynı yapıya nasıl dönüştüreceğimizi bir başka deyişle veri dönüşüm adımlarını öğrendik. Umarım keyif almışsınızdır, bir sonraki yazıda görüşmek üzere :)

--

--