Veri Bilimi

4- Veri Ön İşlemede En Sık Kullanılan 10 Teknik

Veri Ön İşleme

Veri Ön İşlemede En Sık Kullanılan 10 Teknik

Veri ön işleme süreçleri, makine öğrenmesi projelerinin başarısını arttıran en önemli unsurdur. Yapılacak proje için elde edilen veya toplanan ham veriler genellikle gürültülü, eksik değerlere sahip, tutarsız ve farklı formatlarda olabilir. Bu veriler ile model eğitimine başlamadan önce, veri setinde bir takım işlemler yapmalıyız. Bu işlemler, modellerin daha etkili bir şekilde öğrenmesini sağlar, tahminlerin doğruluğunu artırır ve sonuç olarak projenin genel başarısını iyileştirir.

1.Eksik Verilerin Doldurulması

Eksik veri,veri setindeki bazı gözlemlerde bir veya daha fazla alanın boş olması durumudur. Eksik veri problemi, ham veri setlerinde karşılaşılan en yaygın sorunlardan biridir. Bu problem, veri toplama aşamasında hatalar, kayıt sırasındaki eksiklikler veya veri depolama sorunlarından kaynaklanabilir. Eksik veriler için uygulanan bazı yöntemler şunlardır;

  • Eksik Verileri Silme

Bu yöntem, eksik değere sahip tüm gözlemlerin veri setinden çıkarılması işlemidir. Basit ve hızlı bir yöntemdir ancak özellikle eksik verilerin oranı yüksekse, veri kaybı önemli bir sorun olabilir. Bu sebeple daha farklı yöntemler geliştirilmiştir.

  • Ortalama/Medyan/Mod ile Doldurma

Sayısal değişkenler için eksik değerler, değişkenin genel ortalama veya medyanı ile doldurulabilir. Kategorik değişkenler için ise, en sık görülen değer olan mod kullanılabilir. Bu yöntem, eksikliklerin rastgele olduğu ve eksik verilerin küçük bir kısmını oluşturduğu durumlar için uygun olabilir.

  • Hot-Deck Imputation

Eksik değere sahip bir gözlem, veri setindeki benzer bir gözlemden alınan değerle doldurulur. “Benzer” gözlemler, özelliklerin diğer yönlerindeki benzerliklere göre belirlenir.

  • KNN (K-En Yakın Komşu) İmputasyonu

Eksik değer, veri setindeki benzer gözlemlerin değerlerine dayanarak tahmin edilir. Benzerlik, diğer değişkenler üzerinden hesaplanır ve en yakın “k” komşunun değerleri kullanılarak bir tahmin yapılır.

  • Regresyon İmputasyonu

Eksik değerler, diğer değişkenlere bağlı bir regresyon modeli kullanılarak tahmin edilir. Bu yöntem, eksik verilerin diğer değişkenlerle sistematik bir ilişkisi olduğu durumlarda etkilidir.

  • Çoklu Atama Yöntemleri (Multiple Imputation)

Çoklu atama, eksik veri problemini çözmek için birden fazla tahmin kullanır. Bu yöntem, eksik verinin rastgele dağılımını varsayar ve bir dizi imputasyon oluşturarak analizlerin varyansını hesaba katar.

2. Aykırı Değer (Outliers) Tespiti

Aykırı değerler, veri setindeki diğer gözlemlerden önemli ölçüde farklı olan ve analiz sonuçlarını yanıltabilecek veri noktalarıdır. Bu değerler, veri toplama sırasında oluşan hatalar, ölçüm hataları veya nadir olayların bir sonucu olarak ortaya çıkabilir. Aykırı değerlerin tespiti ve işlenmesi, veri ön işleme sürecinin önemli bir parçasıdır, çünkü bu değerler makine öğrenmesi modellerinin performansını olumsuz etkileyebilir. Bu değerleri tespit etmede bazı yöntemler kullanılır, bunlar;

2.1. Z-Skoru Yöntemi

Z-skoru, bir veri noktasının ortalama değerden ne kadar standart sapma uzaklıkta olduğunu gösterir. Genellikle, Z-skoru +3 veya -3’ün üzerindeki değerler aykırı olarak kabul edilir. Bu yöntem, verilerin normal dağıldığı varsayımına dayanır.

2.2. IQR (Interquartile Range) Yöntemi

IQR, bir veri setinin %75’lik (üçüncü çeyrek) ve %25’lik (birinci çeyrek) değerleri arasındaki farktır. Aykırı değerler, genellikle birinci çeyrekten 1.5IQR’den daha az veya üçüncü çeyrekten 1.5IQR’den daha fazla olan değerler olarak tanımlanır. Bu yöntem, veri dağılımının şeklinden bağımsızdır ve bu nedenle çok değişkenli veriler için de uygundur.

  • IQR, bir veri setinin merkezi dağılımının yayılımını ölçer.
  • Bir veri setindeki üçüncü çeyrek (Q3) ile birinci çeyrek (Q1) arasındaki fark olarak tanımlanır: IQR = Q3-Q1
  • IQR, veri setinin %25’ini altta bırakan ve %75’ini üstte bırakan değerler arasındaki farkı ifade eder, dolayısıyla veri setinin orta %50’sinin yayılımını gösterir.
  • Aykırı değerleri tespit etmek için kullanılır. Genellikle, Q1-1.5 x IQR altınya veya Q3+ 1.5 x IQR üstünde kalan değerler aykırı olarak kabul edilir.

2.3. Kutu Grafiği (Boxplot)

Kutu grafiği, aykırı değerleri görselleştirmek için kullanılan bir yöntemdir. Grafiğin kutusu, birinci ve üçüncü çeyrekleri temsil eder, ve “bıyıklar” genellikle 1.5*IQR uzaklığındaki değerlere kadar uzanır. Bıyıkların ötesindeki noktalar aykırı olarak kabul edilir.

  • Boxplot, veri dağılımını görselleştirmek için kullanılan bir çizim türüdür.
  • Veri setinin medyanını, çeyreklerini (Q1, Q3), ve bazen aykırı değerleri gösterir.
  • Boxplot’un “kutusu”, Q1’den Q3’e kadar olan aralığı (yani IQR’ı) kaplar. Kutunun ortasındaki çizgi medyanı (Q2) gösterir.
  • “Bıyıklar” genellikle Q1 – 1.5 x IQR ve Q3 + 1.5 x IQR değerlerine kadar uzanır ve bu sınırların dışında kalan noktalar aykırı değer olarak işaretlenir.
  • Boxplot, IQR yöntemini kullanarak aykırı değerleri görselleştirir, dolayısıyla IQR ile doğrudan ilişkilidir ama görselleştirme amacı taşır.

2.4. DBSCAN Kümeleme

DBSCAN, yoğunluk tabanlı bir kümeleme algoritmasıdır ve veri noktalarını yoğunluklarına göre gruplandırır. Yüksek yoğunluklu bölgeler dışında kalan noktalar aykırı olarak kabul edilir. Bu yöntem, aykırı değerleri otomatik olarak tespit edebilir ve çok boyutlu veri setleri için uygundur.

3. Özellik Seçimi (Feature Selection)

Özellik seçimi (feature selection), makine öğrenmesi ve veri bilimi projelerinde, modelin eğitimi için kullanılacak en önemli ve en etkili özellikleri (veya değişkenleri) belirlemeyi amaçlayan bir süreçtir. Özellik seçiminin ana amacı, modelin genel performansını artırmak, eğitim süresini azaltmak ve modelin anlaşılabilirliğini iyileştirmektir. Bu süreç, gereksiz, alakasız veya yanıltıcı bilgileri içeren özellikleri veri setinden çıkararak modelin doğruluğunu ve etkinliğini artırabilir. Özellik seçimi yöntemleri genellikle üç ana kategori altında incelenebilir: filtre yöntemleri, ambalaj (wrapper) yöntemleri ve gömülü (embedded) yöntemler.

3.1. Filtre Yöntemleri

Filtre yöntemleri, özelliklerin seçimini modelin eğitimi öncesinde, özelliklerin istatistiksel ölçümlerine dayanarak gerçekleştirir. Bu yöntemler, modelin karmaşıklığını artırmadan önce özellikleri hızlı bir şekilde süzgeçten geçirir:

  • Korelasyon Katsayısı: Özellikler ve hedef değişken arasındaki korelasyonu hesaplar. Yüksek korelasyona sahip özellikler seçilirken, düşük korelasyonlu özellikler çıkarılır.
  • Chi-Kare Testi: Kategorik değişkenler için kullanılır ve bir özelliğin hedef değişkenle bağımsız olup olmadığını test eder.
  • Mutlak Bilgi Kazancı (Mutual Information): Özelliklerin hedef değişken üzerindeki karşılıklı bilgi miktarını ölçer.

3.2. Ambalaj (Wrapper) Yöntemleri

Ambalaj yöntemleri, belirli bir makine öğrenmesi modelinin performansını kullanarak özellik seçimi yapar. Bu yöntemler, modeli bir özellik seti üzerinde eğitir ve modelin performansına dayanarak özellikleri ekler veya çıkarır:

  • Gerileme Yöntemleri (Recursive Feature Elimination, RFE): Modelin en az önemli özelliklerini iteratif bir şekilde çıkarır.
  • Sıralı Özellik Seçimi (Sequential Feature Selection): Özellikleri adım adım ekleyerek veya çıkararak en iyi özellik kombinasyonunu bulmaya çalışır.

3.3. Gömülü (Embedded) Yöntemler

Gömülü yöntemler, model eğitimi sırasında özellik seçimi yapar ve modelin kendisi tarafından doğrudan gerçekleştirilir. Bu yöntemler, modelin eğitimi ve özellik seçiminin entegre bir parçası olarak özelliklerin önemini değerlendirir:

  • Lasso (L1 Düzenlemesi): Lasso regresyonu, katsayıları sıfıra eşitleyerek bazı özellikleri otomatik olarak seçer ve diğerlerini çıkarır.
  • Rastgele Orman Önemi (Random Forest Importance): Rastgele orman gibi ağaç tabanlı yöntemler, her bir özelliğin önemini ölçer ve en önemli özellikleri belirler.

4. Özellik Kodlama (Feature Coding)

Özellik kodlama (Feature Coding), makine öğrenmesi algoritmalarının anlayabileceği şekilde kategorik verileri sayısal formata dönüştürme işlemidir. Çoğu makine öğrenmesi modeli, doğrudan kategorik veri ile çalışamaz, bu nedenle bu verilerin modelleme sürecine uygun hale getirilmesi için sayısal bir temsile dönüştürülmesi gerekir. Bu süreç, hem girdi verilerinin kalitesini hem de sonuçta elde edilen modelin performansını doğrudan etkiler.

4.1. One-Hot Encoding

One-hot encoding, kategorik bir değişkeni, değişkenin her bir kategorisini temsil eden bir sütun dizisine dönüştürür. Her bir gözlem için, gözlemin ait olduğu kategoriye karşılık gelen sütunda 1 değeri, diğer sütunlarda ise 0 değeri yer alır. Bu yöntem, nominal kategorik değişkenlerle (sıralı olmayan) çalışırken yaygın olarak kullanılır.

4.2. Label Encoding

Label encoding, her bir kategorik değeri benzersiz bir tamsayı ile eşleştirir. Bu yöntem, kategorik değişkenin sıralı bir yapıya sahip olduğu durumlar için uygun olabilir çünkü oluşturulan sayısal değerler arasında bir sıralama ilişkisi vardır. Ancak, bu kodlama modelin kategoriler arasında matematiksel bir ilişki varsaymasına neden olabilir, bu da bazı durumlarda istenmeyen sonuçlara yol açabilir.

4.3. Ordinal Encoding

Ordinal encoding, label encoding’e benzer şekilde çalışır ancak kategoriler arasındaki doğal sıralamayı dikkate alır. Örneğin, “düşük”, “orta” ve “yüksek” gibi sıralı kategoriler tamsayı değerlerine dönüştürülürken, bu sıralama korunur. Bu yöntem, sıralı kategorik değişkenler için uygun bir seçenektir.

4.4. Binary Encoding

Binary encoding, kategorik değerleri önce tamsayı değerlerine çevirir ve ardından bu tamsayıları ikili (binary) forma dönüştürür. Her bir ikili hane, veri setinde bir sütuna karşılık gelir. Bu yöntem, one-hot encoding’e kıyasla daha az sayıda sütun üretir ve büyük kategorik değişken setleri için daha verimli olabilir.

5. Veri Temizleme

Bu süreç, veri setinden hatalı, yinelenen veya eksik verileri kaldırmayı; tutarsızlıkları düzeltmeyi ve veri setini analiz veya modelleme için daha uygun bir hale getirmeyi içerir. Özellikle yinelenen verilerin temizlenmesi, veri bütünlüğünü sağlamak ve analizin doğruluğunu artırmak için önemlidir.

Yinelenen satırları tespit etmek ve kaldırmak için çeşitli programlama dillerinde bulunan veri işleme kütüphanelerinden faydalanabiliriz. Python’da pandas kütüphanesi, R’da ise dplyr veya data.table gibi kütüphaneler bu işlem için sıklıkla kullanılır.

6. Normalizasyon / Ölçeklendirme

Normalizasyon ve ölçeklendirme, veri ön işleme süreçlerinde kullanılan, veri setindeki özelliklerin farklı ölçeklere sahip olmasından kaynaklanan sorunları gidermeyi amaçlayan tekniklerdir. Bu işlemler, makine öğrenmesi modellerinin daha hızlı ve daha etkili bir şekilde öğrenmesine yardımcı olur. Özellikler arasındaki büyük ölçek farklılıkları, bazı algoritmaların performansını olumsuz etkileyebilir, çünkü bu algoritmalar özelliklerin büyüklüğüne duyarlıdır.ormalizasyon ve ölçeklendirme için kullanılan bazı yaygın yöntemler;

6.1. Min-Max Normalizasyonu

Min-Max Normalizasyonu, tüm değerleri belirli bir aralığa, genellikle 0 ile 1 arasına ölçeklendirir. Bu yöntem aşağıdaki formülle uygulanır:

Bu yöntem, tüm özelliklerin aynı ölçeğe sahip olmasını sağlar, ancak aykırı değerlere karşı duyarlıdır ve aykırı değerlerin varlığı ölçeklendirmeyi bozabilir.

6.2. Z-Skoru Normalizasyonu (Standartlaştırma)

Z-Skoru Normalizasyonu, verilerin ortalama değerini 0 ve standart sapmasını 1 olacak şekilde ölçeklendirir. Bu yöntem, aşağıdaki formülle hesaplanır:

Burada;

  • orijinal değer,
  • ortalama ve
  • standart sapmadır.

Bu yöntem, özelliklerin dağılımını korur ve aykırı değerlere karşı Min-Max Normalizasyonuna göre daha dayanıklıdır.

Z Score Norm

6.3. Robust Scaling

Robust Scaling, aykırı değerlerin etkisini azaltmak amacıyla medyanı ve çeyrekler arası aralığı (IQR) kullanarak ölçeklendirme yapar. Bu yöntem, aşağıdaki formülle gerçekleştirilir:

Bu yöntem, özellikle aykırı değerlerin yaygın olduğu veri setleri için uygundur, çünkü medyan ve IQR aykırı değerlerden daha az etkilenir.

6.4. Logaritmik Dönüşüm

Logaritmik Dönüşüm, verilerin logaritmasını alarak ölçeklendirme yapar. Bu dönüşüm, özellikle veriler çok geniş bir aralığa yayıldığında (örneğin, bazı değerler çok küçükken bazıları çok büyükse) kullanışlıdır. Logaritmik dönüşüm, veri dağılımını daha normal hale getirebilir ve aykırı değerlerin etkisini azaltabilir.

6.5. L1 ve L2 Normalizasyonu

L1 (Manhattan normu) ve L2 (Euclidean normu) normalizasyonu, vektörlerin uzunluklarını sırasıyla L1 ve L2 normlarına göre 1’e ölçeklendirir. Bu yöntemler, özellikle bazı türdeki regresyon analizlerinde ve kümelenme algoritmalarında kullanılır.

7. Görselleştirme

Görselleştirme, veriyi grafik ve çizimler aracılığıyla temsil etme sürecidir ve karmaşık veri setlerinden bilgi çıkarmayı, veri analizini ve sonuçların sunumunu kolaylaştırır. Etkili görselleştirme, verinin hikayesini anlamak ve paydaşlara aktarmak için kritik bir araçtır.

8. Train – Test Ayırma

Makine öğrenmesi projelerinde, oluşturulan modelin genelleştirme kabiliyetini değerlendirmek için veri seti genellikle eğitim (train) ve test (test) setlerine ayrılır. Bu ayrım, modelin henüz görmediği veriler üzerinde nasıl performans gösterdiğini anlamak için yapılır.

Train Test :

%80’e %20 veya %70’e % 30 ayırma oranı yaygın olarak kullanılır.

9. Veri Arttırma

Veri artırma, özellikle derin öğrenme ve görüntü işleme projelerinde kullanılan, mevcut veri setinin yapay yollarla genişletilmesi işlemidir. Bu teknik, modelin genelleme kabiliyetini artırarak aşırı uyum (overfitting) sorununu azaltmaya yardımcı olur. Veri artırma, mevcut verilere bazı rastgele değişiklikler uygulayarak yeni veri örnekleri üretir.

  • Görüntü Verileri için:
    • Döndürme: Görüntüyü rastgele bir açıda döndürme.
    • Yansıma: Görüntüyü yatay veya dikey olarak yansıtma.
    • Ölçeklendirme: Görüntünün boyutunu değiştirme.
    • Kesme: Görüntünün bir kısmını kesme.
    • Parlaklık ve Kontrast Ayarları: Görüntünün parlaklığını ve kontrastını değiştirme.
  • Metin Verileri için:
    • Synonym Replacement: Bir kelimenin yerine eşanlamlısını koyma.
    • Random Insertion: Rastgele kelimeler ekleyerek cümleyi genişletme.
    • Random Swap: Cümle içindeki kelimelerin yerlerini rastgele değiştirme.
    • Random Deletion: Cümleden rastgele kelimeler silme.

10.Model Seçimi (Model Selection)

Model seçimi, makine öğrenmesi projelerinde optimal modelin belirlenmesi sürecidir. Bu süreç, veriye en uygun modelin seçilmesini, modelin karmaşıklığının ayarlanmasını ve en iyi performansı sağlayacak parametrelerin belirlenmesini içerir. Model seçimi, modelin genelleme kabiliyetini artırarak, aşırı uyum (overfitting) veya yetersiz uyum (underfitting) sorunlarını minimize etmeyi amaçlar.

Tanıştığımıza memnun oldum.👋

Yeni Eğitim Yazılarından İlk Sen Haberdar Olmak İster Misin?

Yalnızca yeni eğitim yazıları geldikçe sizi haberdar ediyoruz!

Yazar hakkında

Umut CİNDİLOĞLU

Herkese Merhaba;

Gazi Üniversitesi Endüstri Mühendisliği Anabilim Dalında doktora öğrencisiyim, aynı zamanda araştırma görevlisi olarak görev yapmaktayım.

Çalışma alanlarım Yapay Zeka, Bilgisayarlı Görü, Derin Öğrenme ve Optimizasyondur.

2 Comments

  • Güzel bir çalışma olmuş, tebrik ederim. Biraz daha zenginleştirilmesi gerekir. Örneğin;
    Dimension reduction yöntemlerine yer verilebilir (pca gibi),
    Outlier tespit edildikten sonra ne yapılması gerektiği belirtilmemiş (silmek her zaman iyi bir yöntem olmayabilir),
    Normalizasyon/standardizasyon nedir, farkları ve kullanım yerleri belirtilse iyi olur
    Time Series dataseti ile çalışıyorsanız, test ve train data seçimi normalden çok farklı, bunlar belirtilebilir.

    • Yorumunuz için çok teşekkür ederim Erhan Hocam. Belirttiğiniz yöntemlerin önemi gerçekten büyük, zamanla bu yöntemleri açıklayan yazılar yazıp, örnekler ile zenginleştireceğim.

      İyi Çalışmalar Diliyorum 🙂

Yorum Yap