Principal Component Analysis (PCA)
Temel Bileşen Analizinin (PCA) ML için yüksek boyutlu verileri nasıl basitleştirdiğini öğren. Veri ön işleme ve YOLO26 gömmelerini görselleştirme için PCA'yı nasıl kullanacağını keşfet.
Temel Bileşenler Analizi (PCA), makine öğrenimi (ML) alanında, yüksek boyutlu verilerin karmaşıklığını en temel bilgilerini koruyarak basitleştiren, yaygın olarak kullanılan istatistiksel bir tekniktir. Bu teknik, büyük veri kümelerini çok sayıda değişkenle daha küçük ve yönetilebilir bir "temel bileşenler" kümesine dönüştürerek bir boyut indirgeme yöntemi olarak işlev görür. Verilerin en çok değişkenlik gösterdiği yönleri belirleyen PCA, veri bilimcilerin önemli desenleri kaybetmeden hesaplama maliyetlerini düşürmesine ve gürültüyü gidermesine olanak tanır. Bu süreç, etkili veri ön işleme aşamasında kritik bir adımdır ve karmaşık veri kümelerini iki veya üç boyutta görselleştirmek için sıklıkla kullanılır.
Link to this sectionPCA Nasıl Çalışır?#
Özünde PCA, verileri varyansa göre yeniden düzenleyen doğrusal bir dönüşüm tekniğidir. Bir görüntüdeki piksel değerleri veya bir Nesnelerin İnterneti (IoT) ağındaki sensör okumaları gibi çok sayıda özelliğe sahip bir veri kümesinde, değişkenler genellikle ilettikleri bilgiler açısından örtüşür. PCA, varyansı ardışık olarak en üst düzeye çıkaran yeni ve ilişkisiz değişkenler (temel bileşenler) tanımlar. İlk bileşen verideki mümkün olan en büyük varyasyonu yakalar, ikincisi bir sonrakini yakalar (ilkinin dikliğine sahipken) ve bu böyle devam eder.
Yalnızca en üstteki birkaç bileşeni tutup geri kalanını atarak, önemli ölçüde sıkıştırma elde edebilirsin. Bu, boyutluluk laneti olarak bilinen ve mevcut eğitim örneklerine göre özellik sayısı arttıkça tahminleyici modelleme performansının düştüğü fenomeni hafifletmeye yardımcı olur.
Link to this sectionGerçek Dünya Uygulamaları#
PCA çok yönlüdür ve veri temizlemeden model iç yapılarını görselleştirmeye kadar yapay zeka geliştirme yaşam döngüsünün çeşitli aşamalarını destekler.
- Görüntü Gömülerini Görselleştirme: Gelişmiş bilgisayarlı görü (CV) görevlerinde, YOLO26 gibi modeller görüntüleri temsil etmek için yüksek boyutlu gömüler oluşturur. Bu vektörler 512 veya 1024 farklı değer içerebilir ve insanlar tarafından doğrudan görülmeleri imkansızdır. Mühendisler, bu gömüleri 2D bir grafiğe yansıtmak için PCA kullanır; bu da modelin "yayalar" ile "bisikletliler"i otonom araç sistemlerinde ayırt etme gibi farklı sınıfları ne kadar iyi ayırdığını görsel olarak incelemelerine olanak tanır.
- Anomali Tespiti için Ön İşleme: Finans kuruluşları ve siber güvenlik firmaları anomali tespiti için PCA kullanır. Bir sistemin normal davranışını temel bileşenler kullanarak modellediğinde, bu bileşenler tarafından iyi bir şekilde yeniden oluşturulamayan herhangi bir işlem veya ağ paketi aykırı değer olarak işaretlenir. Bu, gerçek zamanlı akışlarda dolandırıcılığı veya düşmanca saldırıları tespit etmek için verimlidir.
Link to this sectionPCA vs. t-SNE ve Otomatik Kodlayıcılar#
PCA, özellik çıkarımı için standart bir araç olsa da, onu diğer indirgeme tekniklerinden ayırt etmek faydalıdır:
- t-SNE (t-Dağıtımlı Stokastik Komşuluk Gömme): PCA, genel yapıyı ve varyansı koruyan doğrusal bir yöntemdir. Buna karşılık t-SNE, yerel komşuluk yapılarını korumada mükemmel olan, farklı kümeleri görselleştirmek için daha iyi ancak hesaplama açısından daha yoğun olan doğrusal olmayan olasılıksal bir tekniktir.
- Otomatik Kodlayıcılar: Bunlar, verileri sıkıştırmak ve yeniden oluşturmak için eğitilen sinir ağlarıdır. PCA'dan farklı olarak, otomatik kodlayıcılar karmaşık doğrusal olmayan eşlemeleri öğrenebilir. Ancak, etkili bir şekilde eğitilmeleri için önemli ölçüde daha fazla eğitim verisi ve hesaplama kaynağı gerektirirler.
Link to this sectionPython Örneği: Özellikleri Sıkıştırma#
Aşağıdaki örnek, yüksek boyutlu özellik vektörlerini azaltmak için scikit-learn kullanımını göstermektedir. Bu iş akışı, bir görüntü modelinin çıktısını bir vektör veritabanında saklamadan veya kümeleme için kullanmadan önce sıkıştırmayı simüle eder.
import numpy as np
from sklearn.decomposition import PCA
# Simulate 100 image embeddings, each with 512 dimensions (features)
embeddings = np.random.rand(100, 512)
# Initialize PCA to reduce the data to 3 principal components
pca = PCA(n_components=3)
# Fit and transform the embeddings to the lower dimension
reduced_data = pca.fit_transform(embeddings)
print(f"Original shape: {embeddings.shape}") # Output: (100, 512)
print(f"Reduced shape: {reduced_data.shape}") # Output: (100, 3)PCA'yı Ultralytics Platform üzerindeki iş akışlarına entegre etmek, girdi karmaşıklığını azaltarak model eğitimini kolaylaştırmaya yardımcı olabilir; bu da daha hızlı deneyler ve daha sağlam yapay zeka çözümleri sağlar.






