PCA ile Makine Öğreniminde Boyut İndirme: Python Örneği

Giriş: PCA Nedir ve Neden Kullanılır?

PCA (Principal Component Analysis), veri setindeki boyut sayısını azaltarak daha anlamlı ve yönetilebilir bir temsil oluşturmayı sağlayan istatistiksel bir tekniktir. Yüksek boyutlu veri setlerinde çalışmak, işlem süresini artırabilir ve modelin genel başarısını olumsuz etkileyebilir. PCA, verinin en anlamlı bileşenlerini (principal component’lar) bulma ve bu bileşenler üzerinden veriyi analiz etme yeteneği sunar. Bu sayede, gereksiz veya düşük anlamlı bilgiler hariç tutulabilir, bu da modelin doğruluğunu artırır.

PCA’nın temel amacı, orijinal veri setindeki korunan çeşitliliği en yüksek seviyeye çıkararak daha az sayıda bileşenle ifade edebilmektir. Bu, özellikle makine öğreniminde, modelin öğrenim süresini optimize etmek ve performansını artırmak amacıyla oldukça önemlidir. Diğer bir deyişle, PCA kullanmak, karmaşık veri yapıları üzerinde çalışırken daha net ve anlaşılır sonuçlar elde etmemizi sağlar.

PCA’nın Temel Adımları

PCA süreci, birkaç temel adım içerir. Bu adımlar öncelikle verinin standartlaştırılmasını, ardından kovaryans matrisinin hesaplanmasını, öz değerlerin ve öz vektörlerin çıkarılmasını ve son olarak belirli sayıda bileşenin seçilmesini kapsar. Bu adımların her birini detaylı olarak incelemek, PCA’nın nasıl çalıştığını anlamanın anahtarıdır.

İlk olarak, veri seti üzerinde standartlaştırma işlemi gerçekleştirilmelidir. Bu, her bir özelliğin ortalamasını 0 ve standart sapmasını 1 olacak şekilde ayarlamaktır. Standartlaştırma, verinin farklı ölçeklerinde olması durumunda, modelin yanlış yönlenmesini engeller.

Kovaryans matrisinin hesaplanması, verinin yapılarını daha iyi anlamaya yardımcı olur. Kovaryans matrisinde, her bir özellik arasındaki ilişkileri görebiliriz. Ardından, bu matrisin öz değerleri ve öz vektörleri çıkarılır. Öz değerler, bileşenlerin verinin içindeki varyansı ne kadar açıkladığını gösterirken, öz vektörler bu eigen değerlerle ilişkilidir.

Python ile PCA Uygulaması

PCA uygulamak için Python’da popüler kütüphanelerden biri olan Scikit-Learn kullanılabilir. Bu kütüphane, PCA’nın uygulanmasını oldukça kolaylaştırmaktadır. Aşağıda PCA uygulamak için temel bir Python örneği bulunmaktadır.

Öncelikle gerekli kütüphaneleri yükleyelim:

import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

Ardından, örnek veri setimizi oluşturalım. Bu örnekte, rastgele veriler üreteceğiz:

# Rastgele veri seti oluşturma
data = np.random.rand(100, 5)  # 100 gözlem, 5 özellik
df = pd.DataFrame(data, columns=["Özellik1", "Özellik2", "Özellik3", "Özellik4", "Özellik5"])

Verimizi standartlaştırıyoruz:

# Veriyi standartlaştırma
scaler = StandardScaler()
data_scaled = scaler.fit_transform(df)

Kovaryans Matrisinin Hesaplanması

Verimiz standart hale geldikten sonra, kovaryans matrisini hesaplayabiliriz. Bu matris, her bir özelliğin diğer özelliklerle olan ilişkisini gösterir:

# Kovaryans matrisini hesaplama
cov_matrix = np.cov(data_scaled.T)  # Transpose ederek şekli ayarlıyoruz

Sonra, PCA’yı uygulayalım. Bunu yaparken, istediğimiz bileşen sayısını da belirtmemiz gerekiyor, bu örnekte 2 adet ana bileşen seçeceğiz:

# PCA uygulama
pca = PCA(n_components=2)
data_pca = pca.fit_transform(data_scaled)

PCA Sonuçlarını İncelemek

Şimdi elde ettiğimiz PCA sonuçlarını inceleyelim. PCA işlemi sonrasında, 100 gözlemimiz yalnızca 2 boyuta indirgenecek:

# Sonuçları DataFrame olarak kaydetme
df_pca = pd.DataFrame(data=data_pca, columns=["Bileşen1", "Bileşen2"])

Büyüklükleri kontrol edebiliriz:

print(df_pca.head())

Yukarıdaki kod, PCA işleminden sonra ilk 5 gözlemi gösterir. Bu sayede, boyut azaltma sürecinin ne kadar etkili olduğunu gözlemleyebiliriz.

Sonuç ve Öneriler

PCA’nın sunduğu avantajlar, büyük veri setlerinde önemli bir yere sahiptir. Veriler üzerinde daha hızlı ve daha doğru analizler yapabilmek, makine öğrenimi süreçlerinde büyük kolaylık sağlarken, gereksiz verileri filtreleyerek model performansını arttırır. Python’da PCA uygulamak, yüksek boyutlu verilerin yönetimi konusunda önemli bir beceri haline gelir.

Ayrıca, PCA’nın sadece veri ön işleme aşamasında değil, aynı zamanda veri görselleştirme aşamasında da kullanılabileceğini unutmayın. İki boyutlu veya üç boyutlu grafiklerde, verinin davranışını gözlemlemek ve anlamak için PCA büyük avantaj sağlar.

Özetlemek gerekirse, PCA ile boyut indirme hem teknik hem de pratik açıdan bir zorunluluktur. Python ile örneğini gerçekleştirmek, bu kampanyada özellikle makine öğrenimim üzerinde önemli fark yaratmaktadır. Uygulamalarınızda ve projelerinizde PCA’yı benimseyerek, veri analizi ve modelleme süreçlerinizi optimize edebilirsiniz.

Scroll to Top