Makine Öğrenmesi Modellerinde Encoding Yöntemleri

DeepmineAI olarak, makine öğrenmesi modellerimizin performansını artırmak için farklı encoding yöntemlerini test ettik. Bu çalışmada, İstanbul’un ilçelerini içeren bir veri seti üzerinden Label Encoding, One-Hot Encoding, Frequency Encoding, Target Encoding ve Hibrit Yöntem gibi çeşitli yöntemleri uyguladık. Amacımız, kategorik değişkenleri sayısal değerlere dönüştürerek makine öğrenmesi modellerinin daha verimli çalışmasını sağlamaktı.

Bu süreçte, hangi encoding yönteminin hangi senaryolarda daha etkili olduğunu analiz ettik ve en iyi sonucu Target Encoding’in verdiğini tespit ettik.


Encoding Yöntemleri ve Örnekleri

Çalışmamızda İstanbul’un ilçelerini içeren bir veri seti kullandık. İlçeleri kategorik değişken olarak ele alıp farklı encoding teknikleriyle dönüştürdük.

Çalışmanın verisetini ve kodlarını GitHub’dan indirmek için tıklayınız

1. Label Encoding

Label Encoding, kategorik değişkenleri basit bir şekilde sayısal değerlere dönüştüren bir yöntemdir. Ancak bu yöntem, ilçeler arasında yapay bir sıralama oluşturur ve modelin yanlış öğrenmesine neden olabilir.

İlçeLabel Encoding
Adalar0
Bakırköy1
Kadıköy2
Üsküdar3
Beşiktaş4

Sorun: Model, Adalar’ın Bakırköy’den küçük olduğunu veya Kadıköy’ün Üsküdar’dan büyük olduğunu düşünebilir. Bu yüzden her zaman ideal değildir.


2. One-Hot Encoding

One-Hot Encoding, her kategorik değeri ayrı bir sütuna bölerek 0 ve 1 değerleriyle temsil eder. Bu yöntem, kategorik değişkenler arasındaki sıralama sorununu ortadan kaldırır ancak çok fazla yeni sütun ekleyerek bellek kullanımını artırabilir.

İlçeAdalarBakırköyKadıköyÜsküdarBeşiktaş
Adalar10000
Bakırköy01000
Kadıköy00100
Üsküdar00010
Beşiktaş00001

Sorun: İlçe sayısı arttıkça, sütun sayısı da artar ve bellek tüketimi ciddi şekilde yükselir.


3. Frequency Encoding

Frequency Encoding, her kategoriye görülme sıklığına göre bir değer atar. Yani ilçelerin kaç kez geçtiğini baz alarak sayısal değerler oluşturur.

İlçeFrequency Encoding
Adalar0.05
Bakırköy0.15
Kadıköy0.25
Üsküdar0.30
Beşiktaş0.25

Avantaj: Düşük bellek tüketimi ile çalışır ve sıralama sorunu yaratmaz.
Sorun: Model, sadece kategorinin ne kadar sık geçtiğini öğrenir ama ilçelerin fiyat, nüfus gibi özellikleriyle ilişkisini anlayamaz.


4. Target Encoding (Mean Encoding)

Target Encoding, her kategoriyi hedef değişkenin (örneğin, konut fiyatlarının) ortalamasıyla eşleştirir.

Örneğin, ilçelere göre ortalama konut fiyatlarını baz alalım:

İlçeOrtalama Konut Fiyatı (₺)Target Encoding
Adalar3.000.0003.000.000
Bakırköy2.500.0002.500.000
Kadıköy2.800.0002.800.000
Üsküdar2.700.0002.700.000
Beşiktaş3.200.0003.200.000

Avantaj: Model, ilçelerin konut fiyatlarıyla olan ilişkisini öğrenebilir.
En iyi sonuç: Bu yöntemin model doğruluğunu en fazla artırdığını gözlemledik.
Sorun: Eğer veri seti küçükse veya dengeli değilse overfitting (aşırı öğrenme) riski vardır.


5. Hibrit Yöntem (Label Encoding + Frequency Encoding Kombinasyonu)

Bazı durumlarda, Label Encoding ve Frequency Encoding’in birleşimi daha iyi sonuçlar verebilir.

Örneğin, önce Label Encoding yapıp ardından Frequency Encoding değerlerini ekleyelim:

İlçeLabel EncodingFrequency Encoding
Adalar00.05
Bakırköy10.15
Kadıköy20.25
Üsküdar30.30
Beşiktaş40.25

Avantaj: Model, ilçeler arasındaki farkları daha iyi öğrenebilir.
Sorun: Hangi encoding’in daha fazla ağırlık taşıması gerektiği dikkatli ayarlanmalıdır.


Sonuç: En İyi Yöntem Hangisi?

Tüm yöntemleri inceledikten sonra, Target Encoding (Mean Encoding) en iyi sonucu verdi. Çünkü ilçeler arasındaki fiyat farklarını dikkate alarak modelin daha doğru tahminler yapmasını sağladı.

Ancak overfitting riski olduğundan, büyük veri setlerinde Cross-Validation (Çapraz Doğrulama) ile kullanılması gerektiğini unutmayın!

Özet: Encoding Yöntemlerinin Karşılaştırması

Encoding YöntemiAvantajlarıDezavantajları
Label EncodingBasit ve hızlıSıralama hatası yaratır
One-Hot EncodingSıralama sorunu yokFazla bellek tüketir
Frequency EncodingBellek dostuKategoriler arasındaki farkları anlayamaz
Target EncodingEn iyi tahmin doğruluğuOverfitting riski var
Hibrit YöntemDengeli bir yaklaşımHangi yöntemin ağırlıklı olması gerektiği iyi belirlenmeli

Makine öğrenmesi modellerinizi geliştirmek için doğru encoding yöntemini seçmek büyük fark yaratabilir. DeepmineAI olarak, veri bilimi ve yapay zeka üzerine çalışmalarımızı paylaşmaya devam edeceğiz! 🚀

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir