Principal Component Analysis (PCA)
Temel Bileşen Analizi (PCA), yüksek boyutlu verileri nasıl basitleştirir öğren. Veri ön işleme ve YOLO26 gömme vektörlerini görselleştirme için PCA'nın nasıl kullanılacağını keşfet.
Temel Bileşen Analizi (PCA), makine öğrenmesi (ML) alanında yaygın olarak kullanılan ve en önemli bilgilerini korurken yüksek boyutlu verilerin karmaşıklığını basitleştiren istatistiksel bir tekniktir. Boyut indirgeme yöntemi olarak işlev görür ve çok sayıda değişken içeren büyük veri kümelerini daha küçük ve yönetilebilir bir "temel bileşenler" kümesine dönüştürür. Verilerin en fazla değişkenlik gösterdiği yönleri belirleyen PCA, veri bilimcilerin önemli örüntüleri kaybetmeden hesaplama maliyetlerini azaltmasına ve gürültüyü gidermesine olanak tanır. Bu süreç, etkili veri ön işleme için 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.
PCA Nasıl Çalışır#
PCA'nın temelinde, verileri varyansa göre yeniden düzenleyen doğrusal bir dönüşüm tekniği bulunur. Bir görüntüdeki piksel değerleri veya bir Nesnelerin İnterneti (IoT) ağındaki sensör okumaları gibi çok sayıda özellik içeren bir veri kümesinde, değişkenler genellikle aktardıkları bilgiler bakımından örtüşür. PCA, varyansı art arda en üst düzeye çıkaran yeni ve ilişkisiz değişkenleri (temel bileşenleri) belirler. İlk bileşen, verilerdeki mümkün olan en büyük değişim miktarını yakalar; ikinci bileşen, ilk bileşene dik olacak şekilde bir sonraki en büyük miktarı yakalar ve bu böyle devam eder.
Yalnızca en üstteki birkaç bileşeni tutup geri kalanları atarak önemli ölçüde sıkıştırma elde edebilirsin. Bu, özellik sayısının mevcut eğitim örneklerine göre artmasıyla tahmine dayalı modelleme performansının düştüğü bir olgu olan boyutluluk lanetinin etkisini azaltmaya yardımcı olur.
Gerçek Dünya Uygulamaları#
PCA çok yönlüdür ve verileri temizlemekten modelin iç işleyişini görselleştirmeye kadar yapay zekâ geliştirme yaşam döngüsünün çeşitli aşamalarını destekler.
- Görüntü Gömme Vektörlerini 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ömme vektörleri oluşturur. Bu vektörler 512 veya 1024 farklı değer içerebilir ve bu da insanların onları doğrudan görmesini imkânsız hâle getirir. Mühendisler, bu gömme vektörlerini 2B bir grafiğe yansıtmak için PCA kullanır; böylece modelin farklı sınıfları ne kadar iyi ayırdığını, örneğin otonom araç sistemlerinde "yayaları" "bisikletlilerden" ne kadar iyi ayırdığını görsel olarak inceleyebilirler.
- Anomali Tespiti için Ön İşleme: Finans kuruluşları ve siber güvenlik şirketleri anomali tespiti için PCA kullanır. Bir sistemin normal davranışını temel bileşenleri kullanarak modelleyerek, bu bileşenlerle iyi bir şekilde yeniden oluşturulamayan tüm işlemler veya ağ paketleri aykırı değer olarak işaretlenir. Bu yöntem, gerçek zamanlı akışlarda dolandırıcılığı veya düşmanca saldırıları tespit etmede etkilidir.
PCA ile t-SNE ve Otokodlayıcıların Karşılaştırması#
PCA, özellik çıkarımı için standart bir araç olsa da onu diğer indirgeme tekniklerinden ayırmak faydalıdır:
- t-SNE (t-Dağılımlı Stokastik Komşu Gömme): PCA, küresel yapıyı ve varyansı koruyan doğrusal bir yöntemdir. Buna karşılık t-SNE, yerel komşuluk yapılarını korumada başarılı olan doğrusal olmayan olasılıksal bir tekniktir; bu da onu farklı kümeleri görselleştirmek için daha uygun hâle getirir, ancak hesaplama açısından daha yoğundur.
- Otokodlayıcılar: Bunlar, verileri sıkıştırmak ve yeniden oluşturmak üzere eğitilen sinir ağlarıdır. PCA'nın aksine, otokodlayı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.
Python Ö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österir. Bu iş akışı, bir görü modelinin çıktısının bir vektör veritabanında depolanmadan veya kümeleme amacıyla kullanılmadan önce sıkıştırılmasını 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)Ultralytics Platform üzerinde PCA'yı işlem hatlarına entegre etmek, girdi karmaşıklığını azaltarak model eğitimini kolaylaştırabilir ve daha hızlı denemeler ile daha sağlam yapay zekâ çözümleri sağlayabilir.









