PCA boyut düşürmede kullanılan en temel metotlardan biridir. Ancak bunu anlamadan önce temel olarak anlaşılması gereken başka kavramlarda mevcuttur. Bundan sonra PCA hakkında fikir yürütebilmemiz daha kolay olacaktır bu nedenle açıklamaya bu temel kavramlardan başlıyorum.
Bir veri kümesi için bakılabilecek belli özellikler vardır. 1 boyutlu bir vektörel data için ortalama, standart sapma veya spread tanımlanabilmektedir. Burada spread haricindeki diğer terimleri biliyoruz. Spread ise aynı standart sapma gibi ancak N-1 ile bölüm olan halidir.

Bunun haricinde kovaryans terimini de bilmemiz PCA kavramak açısından önemlidir. Kovaryans 2 boyutta çalışan bir değer kriteridir. Çok boyutlu verilerde birbirleri arasında işlem yapılmaktadır. 3 boyutlu bir veri için öncelikle xy, xz, yz arasında kovaryans hesaplanabilmektedir. Bir vektörün kendisi ile kovaryansı aslında varyansını vermektedir.

Kovaryansın almış olduğu değer pozitif veya negatif olmasına bakılarak 2 boyut arasındaki ilişkinin doğru veya ters orantılı olduğu bilgisi elde edilebilir. Bir bakıma bize değişimlerini veren grafiğin eğiminin bilgisini vermektedir.
Kovaryans işleminin sadece 2 boyut arasında olduğundan bahsetmiştik peki ya daha fazla boyutta veriler için elimizdeki veri setini nasıl kullanacağız? Bunun için her ikişer boyuttu ayrı ayrı hesaplamaktayız. Burada n!/[(n-2)!*2] adet kovaryans hesaplanması işlemi vardır. Bunlar daha sonra kovaryans matrisi olarak adlandırılan matris üzerine aktarılmaktadır.

PCA konusunda kullanılacak temel bilgilerden bir diğeri ise özdeğer ve özvektörlerdir. Bir matrisi özdeğer ve özvektörleri ile temsil edebiliriz. Özvektörler birbirine dik olan ve boyut sayısı kadar bulunan vektörlerdir. Özvektörlerin ve özdeğerlerin nasıl hesaplandığını zaten bilmekteyiz. Kısaca anımsatacak olursak.
Bir A matrisi için det(λ-A)=0 için oluşan denklemde λ değerleri hesaplanır ve bunlar daha sonra yerine konur ve bir ξ vektörüyle çarpımı sıfıra eşitlenir buradaki ξ vektörü o matrise ait özvektörlerdendir, λ ise özdeğer olmaktadır.
PCA ise verilen datadaki benzerlikleri ve farklılıkları ölçmenin bir yoludur. Veri sıkıştırmada veri kaybına neden olmaksızın kullanılabilmektedir. Burada adım adım PCA için gereken adımları takip edeceğiz.
Ortalama değerleri verilerden çıkar. Bu sayede kovaryans hesaplarken ortalamaları doğrudan 0 kabul eder ve bunu hesaplamakla uğraşmayız.
Kovaryans matrisi hesaplanır
Kovaryans matrisine ait özdeğer ve özvektörler çıkarılır. (Burada özvektörlerin uzunluklarının normalize olması önemlidir yani boyları 1 olmalıdır, bunlar daha sonra özdeğerlerine göre sıralanacaktır)
Elemanların seçilmesi ve feature vektörü oluşturulması
Hesaplamalar sonucunda görüleceği üzere özdeğerler arasında farklılıklar bulunmaktadır. Bu farklılıkları daha sonra kullanacağız. Veri kümesinin principle component değeri en yüksek özdeğerli özvektör olmaktadır.
PCA yaparken özvektörler içerisinden en değerli olan p tanesi kullanılabilmektedir. Bunun için en büyük özdeğerlere sahip özvektörler seçilmektedir. Burada veri kaybı yaşanmaktadır ama özdeğerleri ne kadar küçükse kaybolan veride o ölçüde önemsiz olmaktadır.
Özvektörlerde p adet seçildikten sonra feature vektörü kolaylıkla elde edilebilir. Bunun için FV = [eig1 eig2 … eigp] olmaktadır.
Bu adımlarda tamamlandıktan sonra artık yeni veri kümemize ulaşabiliriz. Bu veri kümesi boyutu azaltılmış olan veri setini temsil etmektedir. Bunun için elde edilen yüksek öneme sahip özvektörler ve özdeğerler kullanılacaktır.
[SonVeri] = [SatırÖzVektörleri] x [SatırVerileri]
Burada belirtilen SatırÖzVektörleri özvektörlerin en yüksek önceliklisi en üstteki satırda yer alacak şekilde bir matris oluşturulması sonucu elde edilen matristir. SatırVerileri ise diğer matriste olduğu gibi bu vektördeki değerlerin yer aldığı matrisi temsil etmektedir. Elde edilen Final data ise bizim p boyutta verilerimizdir.
PCA kullanılarak boyut küçültme işlemi de yapmak mümkündür. Bunun için kullanılan datayı D boyuttan d boyuta küçültmek için D-d adet en önemsiz özvektörler atılmaktadır. Daha sonra kalanlardan görüntü veya diğer veriler geri getirilebilmektedir.