Makine Öğrenmesi Dersleri 7: Boyut Azaltma (Dimensionality Reduction)

Hakkı Kaan Simsek
Veri Bilimi Türkiye
3 min readApr 14, 2018
kaynak

Boyut Azaltma (Dimensionality Reduction) veri bilimi için oldukça önemli bir yöntem. Başlıca sebepleri şöyle:

  • Gerçek hayattaki veriler çok fazla boyuta (özniteliğe) sahip oluyor ve boyut büyüdükçe veri temizlemeden model kurmaya bütün süreçlerde harcamamız gereken zaman ve kaynaklar artıyor.
  • Ne kadar çok boyuta sahip olursak görselleştirme de o kadar zor oluyor. 3 boyuttan sonrasını hayal etmek zor ama görsel olarak da yaptığımız çalışmanın bir karşılığı olsun insanlara anlatalım istiyoruz.
  • Hemen her veri setinde bazı öznitelikler arasında yüksek korelasyon oluyor ve bu bizim gereksiz bilgiye sahip olmamıza ve modelimizde overfitting problemine sebep olabiliyor.

PCA (Principal Component Analysis) methodu yüksek boyutlu bir veri setinin boyutunu azaltmak için kullanılan en yaygın yöntemlerden biri.

Peki Nasıl?

Boyut küçültmenin en kolay yolu verimizi en iyi tanımlayan öznitelikleri bulup diğerlerini atmaktır (öznitelik seçimi — feature selection). Örneğin 100 boyuttan 10 tanesinin önemli olduğunu belirleyip kalan 90 özniteliği atmak ama bu tahmin edeceğiniz gibi bilgi kaybına sebep oluyor.

Bizim uğraşmamız gereken şey ise öznitelik çıkarımı (feature extraction) yapmak -en az bilgi kaybıyla boyut küçültmek-. Bunu yapmak için verideki dağılımın maksimum varyansını-bilgisini tutan minimum sayıda değişken oluşturuyoruz. Eğer bir değişken her örnek için aynı değere sahip ise gereksiz bir değişkendir. Biz en yüksek varyansa sahip olan değişkenleri bulmalıyız. Buna en güzel örneklerden biri HDI (İnsani Kalkınma Endeksi) hesaplaması olabilir. Ülkelerin sahip olduğu değişkenlerden bazıları (wiki): resmi dil, yüz ölçümü (toplam), su oranı, nüfus, nüfus yoğunluğu, GSYH, para birimi, trafik akışı, hukuk, dış ilişkiler, din, eğitim, sağlık, sanayi, tarım, turizm…

Yukarıdakine ek olarak ülkeden ülkeye değişen yüzlerce değişken sıralayabiliriz. PCA metodu sanayi, tarım, turizm vs. ekonomiyle ilgili yüzlerce değişkeni ve nüfusu kullanıp kişi başına düşen gayri safi milli gelir diye tek bir değişken oluşturuyor. Yani yüzlerce boyutluk bilgi en az bilgi kaybıyla tek boyutta tutulmuş oluyor.

HDI hesaplamalarında sadece 5 özniteliğe bakılarak pek de itiraz edilmeyecek bir tablo karşımıza çıkıyor.

  • Kişi başına düşen gayri safi milli gelir
  • Kişi başına düşen gayri safi milli gelir sıralaması — HDI sıralaması
  • Beklenen ortalama yaşam süresi
  • Beklenen eğitim yılı
  • Ortalama eğitim yılı

Şimdi öğrendiklerimizi makine öğrenmesinin en temel veri setlerinden biri olan el yazısı verisi üzerinde uygulayalım.

Kütüphaneler tamam şimdi sklearn veri setinde yer alan el yazısı veri setini yükleyelim ve X, y değişkenlerine bakalım.

Veri setimizde farklı şekilde yazılmış 1797 rakam var ve her rakam 64 boyutlu bir matrisle ifade ediliyor. Her rakam için çok farklı temsiller (vektörler) mevcut.

El yazısıyla yazılmış 0 ve 1 rakamlarını temsil eden farklı vektörlere bir bakalım.

0 rakamını temsil eden vektörler arasında farklılık var kabul fakat 1 rakamını temsil eden vektörlere kıyasla fark oldukça az. Bunu daha görünür yapmak için PCA dönüşümünü uygulayıp ve rakamların iki boyutlu dünyasına bakalım.

Vektörler arasındaki uzaklığa hızlıca bakarsak kötü bir dönüşüm olmadığını anlarız.

Şimdi bütün rakamların PCA dönüşümü sonrasındaki iki boyutlu vektörlerini gösterelim, rengarenk bir dünya bizi bekliyor.

Çalışmadaki veri setine ve kodlara şuradan ulaşabilirsiniz.

Sorunuz olursa bana Linkedin veya Twitter hesaplarından yazabilirsiniz.

--

--