31 Mart 2016 Perşembe

Python - Temel bileşen analizi (PCA)


Hiperspektral görüntülerde PCA ile boyut indirme


PCA ( Temel bileşen analizi ) çok boyutlu veriyi, her bir boyut arasındaki varyansı maksimum yapacak şekilde yeni bir uzaya dönüştürmeye yarar.

PCA adımları

- kovaryans_matris = cov ( numpy.transpose(data) ) 

bu adımda her bir özdeğere karşılık gelen özvektör hesaplanıyor

- Ozdeger, Ozvektor = numpy.linalg.eig(kovaryans_matris)

düşük özdeğere karşılık gelen özvektörler ihmal edilirse veri boyutu minimum bilgi kaybı ile küçültülür. ( Yani özvektörler matrisinden bazı sütunlar atılacak )

- donusturulmus_veri = numpy.dot( data, Ozvektor )

Bu adımda geri dönüşüm işlemi yapılıyor, eğer bazı özvektörler elenmiş ise orjinal veri seti eksiksiz olarak geri dönüştürülemez fakat yine de genel bilgi belirli oranda korunmuş olacaktır

- data_geri_elde_edilen = numpy.dot ( donusturulmus_veri, numpy.transpose(Ozvektor) )




Python Scikit ile PCA

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html




Örneğin 33 bandlık bir görüntü üzerinde PCA uygularsak;
( http://www.vision.uji.es/BandSelectionTool_files/BandSelectionTool.htm )

(a) En büyük temel bileşen tüm verinin %98.4 'ünü
(b) 2. temel bileşen tüm verinin %1.2 'sini
(c) 3. temel bileşen ise tüm verinin sadece %0.16 sını temsil edecektir.






Hiç yorum yok:

Yorum Gönder