Makine Öğrenmesi: Veri Kalitesi Hatasını Kaç

Makine öğrenmesi projelerinin çoğu başarısız olur. Sebep genellikle algoritma değil, veri hazırlığıdır. Bir model ne kadar iyi olursa olsun, kötü veriye karşı hiçbir şey yapamaz.

Veri kalitesi sorunu üç ana başlığa ayrılır: eksiklik, tutarsızlık ve önyargı.

Eksik veriler (missing values) en yaygın sorundur. Bir sütundaki değerlerin yüzde 40'ı boş ise, modeli eğitirken bu sütunu tamamen çıkarmak ya da eksik değerleri doldurma stratejileri kullanmak gerekir. Ortalama, medyan veya ileri yöntemler (KNN imputation, forward fill) işe yarar. Ama rastgele doldurma yapmak modeli yanılgıya sürükler.

Tutarsızlık, aynı verinin farklı biçimlerde kaydedilmesidir. "Istanbul", "İstanbul", "ISTANBUL" aynı şehir ama makine bunları farklı kategori olarak görür. Normalizasyon (lowercase, trim, standartlaştırma) gerekir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Önyargı (bias) en tehlikelisidir. Eğitim verisi belirli bir grup için çok fazla örnek içeriyorsa, model diğer gruplar için hatalı tahminler yapar. Sağlık veri setinde bir cinsiyete ait örnekler fazlaysa, model diğer cinsiyet için güvenilmez olur.

Python'da veri temizleme için Pandas kütüphanesi standart araçtır:

1import pandas as pd
2import numpy as np
3
4df = pd.read_csv('veri.csv')
5
6# Eksik değerleri kontrol et
7print(df.isnull().sum())
8
9# Eksik değerleri ortalama ile doldur
10df['yaş'].fillna(df['yaş'].mean(), inplace=True)
11
12# Metin sütunlarını temizle
13df['şehir'] = df['şehir'].str.lower().str.strip()
14
15# Veri türünü kontrol et
16print(df.dtypes)

Veri temizliği tüm projenin yüzde 70-80'ini alır. Hızlı geçmek cazip gelir ama sonradan pahalıya patlar. İyi bir makine öğrenmesi projesi, iyi temizlenmiş veriyle başlar.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz