PCA aslında sadece bir rotasyon. Cidden, hepsi bu: Verileri yeni bir temelde döndürmenin akıllıca bir yolu. Bu temel, çeşitli prosedürler için bir ön işleme adımı olarak yararlı kılan özelliklere sahiptir.
Temel ortonormaldir . Bu, özellikleriniz çok doğrusallık gösteriyorsa (iki veya daha fazla özellik doğrusal olarak bağımlıysa) inanılmaz derecede kullanışlıdır : PCA uygulamanızın, bunun artık sorun olmadığı bir temel oluşturması garanti edilir. Bu prosedür temel bileşen regresyonu olarak bilinir
Taban vektörleri veri yayılması ile ilgili olarak anlamlıdır: bunlar özvektörler ve kovaryans matrisi . Bu ikinci özellik, bir boyutsal azaltma tekniği olarak PCA'nın ünlü faydasına yol açar: verileri döndürdükten sonra , toplam varyansın önemli bir kısmı ile ilişkili temel vektörlerin bir alt kümesine yansıtılması (genellikle) daha düşük bir boyut temsili sağlar ( verilerin (ilginç) yapısal özelliklerinin çoğu.
Yani: bir öğrenme algoritması mı? Bu biraz felsefi bir soru. Bir şeyi öğrenme algoritması yapan nedir? Kesinlikle PCA "denetlenen" bir öğrenme algoritması değildir, çünkü bunu bir hedef değişkenle veya bu değişken olmadan yapabiliriz ve genellikle "denetimsiz" teknikleri kümeleme ile ilişkilendiririz.
Evet, PCA bir ön işleme prosedürüdür. Tamamen olarak değil "öğrenme" bir şey onu yazmadan önce Ama aşağıdakileri dikkate almak istiyorum: PCA olabilir anlamıyla kovaryans matrisinin öz vektörlerini alınarak hesaplanacak, ancak bu genellikle pratikte nasıl yapıldığını değil. Sayısal olarak eşdeğer ve daha hesaplamalı olarak etkili bir prosedür sadece verilerin SVD'sini almaktır . Bu nedenle, PCA sadece özel bir SVD uygulamasıdır, bu yüzden PCA'nın bir öğrenme algoritması olup olmadığını sormak gerçekten SVD'nin bir öğrenme algoritması olup olmadığını sormaktır.
Şimdi, bir öğrenme algoritması olarak PCA'yı yazarken rahat hissetmenize rağmen, işte bu yüzden SVD ile aynı şeyi yapmakta daha az rahat olmalısınız: Konu modelleme ve işbirlikçi filtreleme için şaşırtıcı derecede güçlü bir yöntemdir . SVD'nin bu uygulamalar için yararlı olmasını sağlayan özellikleri, boyutsal azaltma (yani PCA) için yararlı kılan özelliklerle tamamen aynıdır.
SVD öz-kompozisyonun genelleştirilmesidir ve bu da SVD'nin kısıtlı bir versiyonu olarak bile son derece güçlüdür. Bitişiklik matrisinin özvektörlerine bakarak bir grafik üzerinde topluluk algılaması gerçekleştirebilir veya PageRank'in tesadüfî olarak nasıl hesaplandığı geçiş matrisinin özvektörlerine bakarak bir markov modelinin kararlı durum olasılıklarını belirleyebilirsiniz .
Kaputun altında, PCA basit bir doğrusal cebir işlemi gerçekleştiriyor. Ancak, bu, çoğu insanın "makine öğrenimi" etiketini uygulamayı sorgulamadığı birçok uygulamanın altında yatan aynı işlemdir. Bu algoritma sınıfına Matrix Faktorizasyonu denir ve hatta word2vec gibi karmaşık tekniklere kadar uzanır : gerçekten de, kelimenin tam anlamıyla sadece bir sözcük bir arada bulunma matrisine PCA uygulayarak word2vec benzeri sonuçlar elde edebilirsiniz . Genel olarak bakıldığında, PCA'nın sonuçları için başka bir kelime gömme . Word2vec muhtemelen bir gömme işleminin en ünlü örneğidir, ancak düğünleri (aracı olarak) oluşturmak da RNN'lerde kullanılan kodlayıcı-kod çözücü mimarisinin önemli bir bileşenidir.ve şu anda ML araştırmasının kanayan kenarı olan GAN'lar .
Sorunuza geri dönelim: PCA bir "makine öğrenme algoritması mı?" Değilse, aynı şeyi işbirlikçi filtreleme, konu modelleme, topluluk algılama, ağ merkeziliği ve gömme modelleri hakkında da söylemeye hazır olmalısınız.
Basit lineer cebir olması sihir olmadığı anlamına da gelmez.