Veri Madenciliği : Özellik Seçimi için Temel Bileşenler Analizi (PCA)

Veri Madenciliği:  Boyutun Laneti yazısında belirttiğimiz gibi gerçek hayatta verideki özellikler genelde birbiri ile ilişkilidir. Örneğin, resimler üzerinde bir sınıflandırma yapacağımız zaman piksellerin r (kırmızı),g (green),b (blue) değerlerini kullanmak isteriz. Fakat kırmızı ışığa çok duyarlı olan kameralar bile biraz mavi ve biraz yeşil yakalar. Aynı şekilde, mavi ve yeşile duyarlı olanlar belli oranda kırmızı ışık yakalar. Dolayısıyla, kırmızı özelliğini veri setinden silmek, biraz mav ive yeşil verininide silinmesi demektir.

Özellikleri versetinden silmeden önce, özellikler tamamen ilişkisiz olacak şekilde başka bir boyuta transfer edilmelidir.

Örneğin, sol üstteki verisetinde (D olsun) köşede belirtilen korelasyon matrisi ile x ve y koordinantları birbiri ile ilişkilidir. Kovaryans Matrisi yazısında belirtildiği gibi kovaryans matrisi , ilişikisiz bir veri üzerinde döndürme ve ölçekleme fonksiyonları olarak parçalanabilir ve Korelasyon matrisin eigen vektörleri (V olsun) döndürme operatörü olarak tanımlanır. Sağ alttaki veriseti gibi (D’) ilişkisiz hale getirilebilir. Bu da Kovaryans matris ile eigen Vektörün çarpılması ile elde  edilir. 
D’ = V.D

Böylece D’ verisinde x’ ve y’ koordinantları ilişkisizdir. Birinin silinmesi diğerini etkilemez. Daha sonra eigen vektörler sayesinde veri eski haline dönüştrülebilir.

 

 

 

PCA en ilginç özelliğin en geniş varyansa ve yayılıma sahip olan olduğunu kabul eder. Bu enformasyon teorisine dayanır: geniş varyanslı özellik , o özellik için entropi’nin fazla olması bu da o özellikte bilginin fazla olması anlamındadır. Büyük eigen vektörler veriyi temsil ederken, küçük eigen vektörler, “noise” temsil eder. Büyük eigen vektörlere de “temel bileşen” adı verilir.  PCA ile boyu azaltma tekniği, veriyi kovaryans matirisinin en büyük eigen vektörü üzerine yansıtarak olur.

Verinin ilişkisiz özelliklerini bulmaktan vazgeçelim. Veriyi, verinin içinde bir alt uzaya yansıtmak isteyelim. Tabiki bu yansıtmayı yaparken, gerçek veri noktaları ile yansıtılmışlar arasındaki uzaklıkların minimize edilmesi, yani verimiz için hata payının en az hale getirilmesi hedeflenmelidir. Buna küçük kareler yöntemi denir.

Verileri alt uzaya yansıtacak en optimal vektör yine orjinal verinin kovaryans matirisinin en büyük eigen vektörü çıkar 🙂

Hadi hayırlı olsun yine döndük dolaştık olsun temel bileşeni bulduk 🙂

PCA Uygulaması

Bir yüz tanıma uygulaması için, bir dizi fotoğraf öğrenme verisi olarak sisteme verilir. Bir fotograftaki her pikselin parlaklığı özellik olarak alınabilir. Eğer her bir resim 32×32 ise 1024 boyutlu bir matrisimiz olur. Bir resim ile öğrenme dizisi içindeki resimlerim tek tek benzerliklerini hesaplamak, bu 1024 boyut üzerinden yapılır. Fakat uzaklık metrikleri bu yüksek boyutlarda etkisini kaybeder ve sağlıklı sonuçlar döndürmez, yani sınıflandırmada başarılı olunmaz. Boyut düşürmek için PCA uygulanır ise, istenilen sayıda temel bileşen alınarak, her 1024 -boyutlu eigenvektörler tekrar 32×32 resimlere dönüştürülebilir. Öğrenme setindeki diğer resimler bu eigenvektörlerden elde edilen resimlerin belli oranlarda katsayılar ile çarpılıp toplanması ile yani onların lineer kombinasyonundan oluşmaktaadır. İşte bu elde edilen resimler, veriseti içindeki resimlerdeki en bilgilendirici, tanımlayıcı bölgeleri gösteren resimlerdir.

Geriye kalan bir sorud aşu ki acaba kaç tane eigenvektör seçmeliyiz?  Fazla eigenvektör seçmek, overfitting denilen veriye çok benzeme durumu oluştururken, az seçmek de tanımlayıcı bilgi kaybına sebep olabilir. Bunun için net bir cevap yoktur fakat, çapraz validasyon yöntemi (cross-validation) parametre seçimi için kullanılabilir. Diğer yandan, seçilen eigen vektörler ile orjinal verideki varyansın ne kadarı açıklanabiliyor bunu gözlemlemeli. Bu da alınan eigen değerlerin tüm eigen değerlere bölünmesi ile bulunur.

PCA ile boyut azaltmanın tarifini veriyorum

  • Veriyi orijin’e taşı
  • Normalize et
  • Eigen vektörlerini bul. Bunun için SVD en çok kullanılan yöntemdir.
  • Veriyi en büyük eigen vektör üzerine yansıt. V en büyük eigenvektöri içeren matrs olsun. D orjinal veri matrisi olsun. D’=transpose(V).D . V içinden N tanesini seçmiş olalım, bunlara karşılık gelen eigen değerler de ei’ler olsun. Bu durumda orjinal verinin ne kadarını temsil ediyoruz, Tüm ei’lerin, seçilen ei’ler oranına bakarak görebiliriz.

pca

1,405 total views, 1 views today

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir