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şen Analizi (PCA), machine learning (ML) alanında yaygın olarak kullanılan ve yüksek boyutlu verilerin karmaşıklığını basitleştirirken en temel bilgilerini koruyan istatistiksel bir tekniktir. Çok sayıda değişkene sahip büyük veri setlerini daha küçük, daha yönetilebilir bir "temel bileşenler" kümesine dönüştüren bir dimensionality reduction yöntemi olarak işlev görür. Verilerin en çok değiştiği yönleri belirleyen PCA, veri bilimcilerin önemli örüntüleri kaybetmeden hesaplama maliyetlerini düşürmesini ve gürültüyü gidermesini sağlar. Bu süreç, etkili bir data preprocessing adımında kritik bir aşamadır ve karmaşık veri setlerini iki veya üç boyutta görselleştirmek için sıklıkla kullanılır.
PCA Nasıl Çalışır?#
Özünde PCA, verileri varyansa göre yeniden organize eden doğrusal bir dönüşüm tekniğidir. Bir görüntünün piksel değerleri veya bir Internet of Things (IoT) ağındaki sensör okumaları gibi birçok özelliğe sahip bir veri setinde, değişkenler genellikle ilettikleri bilgide örtüşür. PCA, varyansı ardışık olarak maksimize eden yeni, ilişkisiz değişkenler (temel bileşenler) belirler. İlk bileşen verideki mümkün olan en büyük varyans miktarını yakalar, ikinci bileşen bir sonraki en büyük miktarı yakalar (birinciye dik açıda olacak şekilde) ve bu böyle devam eder.
Uygulayıcılar yalnızca en üstteki birkaç bileşeni tutarak ve gerisini atarak önemli bir sıkıştırma elde edebilirler. Bu, mevcut eğitim örneklerine göre özellik sayısı arttıkça predictive modeling performansının düştüğü bir olgu olan curse of dimensionality sorununu hafifletmeye yardımcı olur.
Gerçek Dünya Uygulamaları#
PCA çok yönlüdür ve verilerin temizlenmesinden model iç kısımlarının görselleştirilmesine kadar AI development lifecycle aşamalarını destekler.
- Görüntü Gömme Verilerini Görselleştirme: Gelişmiş computer vision (CV) görevlerinde, YOLO26 gibi modeller görüntüleri temsil etmek için yüksek boyutlu embeddings üretir. Bu vektörler 512 veya 1024 farklı değer içerebilir ve insanların bunları doğrudan görmesini imkansız hale getirebilir. Mühendisler, bu gömme verilerini 2D bir grafiğe yansıtmak için PCA kullanır; bu sayede modelin, autonomous vehicle sistemlerinde "yayalar" ile "bisikletlileri" ayırt etmek gibi farklı sınıfları ne kadar iyi ayırdığını görsel olarak inceleyebilirler.
- Anomali Tespiti İçin Ön İşleme: Finansal kuruluşlar ve siber güvenlik firmaları anomaly detection için PCA kullanır. Temel bileşenler kullanılarak bir sistemin normal davranışı modellendiğ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 adversarial attacks tespit etmek için etkindir.
PCA vs. t-SNE ve Otomatik Kodlayıcılar#
PCA feature extraction için standart bir araç olsa da, onu diğer indirgeme tekniklerinden ayırt etmek faydalıdır:
- t-SNE (t-Distributed Stochastic Neighbor Embedding): PCA, genel yapıyı ve varyansı koruyan doğrusal bir yöntemdir. Buna karşılık t-SNE, yerel komşuluk yapılarını koruma konusunda üstün olan, farklı kümeleri görselleştirmek için daha iyi hale getiren ancak hesaplama açısından daha yoğun olan doğrusal olmayan olasılıksal bir tekniktir.
- Autoencoders: Bunlar, verileri sıkıştırmak ve yeniden oluşturmak için eğitilmiş neural networks modelleridir. PCA'nın aksine, oto kodlayıcılar karmaşık doğrusal olmayan eşlemeleri öğrenebilir. Bununla birlikte, etkili bir şekilde eğitilmek için önemli ölçüde daha fazla training data ve hesaplama kaynağı gerektirirler.
Python Örneği: Özellikleri Sıkıştırma#
Aşağıdaki örnek, yüksek boyutlu özellik vektörlerini indirgemek için scikit-learn öğesinin nasıl kullanılacağını göstermektedir. Bu iş akışı, bir vizyon modelinin çıktısını bir vector database içinde 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)Ultralytics Platform üzerindeki boru hatlarına PCA entegre etmek, girdi karmaşıklığını azaltarak model training süreçlerini optimize etmeye yardımcı olabilir; bu da daha hızlı deneylere ve daha güçlü yapay zeka çözümlerine yol açar.






