Ana içeriğe geç

Özdeğer Ayrışımı: Matris Ayrıştırmaya Yeni Başlayanlar İçin Rehber

Özdeğer ayrışımının temellerini ve veri bilimi ile makine öğrenimindeki uygulamalarını keşfedin.
· 7 dk. oku

Yapay Zeka ile Keşfedin

Matrisler üzerindeki işlemler, makine öğrenimi, istatistiksel analiz ve bilimsel hesaplamalardaki hesaplamaların özünü oluşturur. Örneğin, istatistikteki birçok işlem matris tersini alma, diyagonalizasyon ve üstel alma gerektirir. Bu tür işlemler hesaplama açısından maliyetlidir; ancak bir matrisi daha küçük matris gruplarına ayırarak verimliliği artıran yöntemler vardır. Bu işlemler genel olarak matris ayrıştırma olarak adlandırılır ve elde edilen küçük matrislerin doğasına göre özel isimler alırlar. 

Özdeğer ayrışımı, bu matrislerin elemanlarının özdeğerler ve özvektörler olduğu bir matris ayrıştırma yöntemidir. Matris özdeğer ayrışımını anlamak, makine öğrenimi ve veri bilimi mühendislerine boyut indirgeme ve matris yaklaşımı gibi yöntemleri kavramaları için matematiksel bir temel sunar. Bu makaleyi okuduktan sonra, veri biliminin temelini oluşturan R ile Veri Bilimi için Lineer Cebir kursunu alarak veri biliminin dayandığı başat matematiksel konuları öğrenin.

Özdeğer Ayrışımı Nedir?

Özdeğer ayrışımı, bir kare matrisin üç çarpan matrise ayrıldığı (ayrıştırıldığı) bir matris ayrıştırma yöntemidir. Bu ayrıştırmaya, matrislerin girdileri orijinal kare matrisin özdeğerleri ve özvektörleri olduğundan özdeğer ayrışımı denir. Matematiksel olarak, bir kare A matrisi şu şekilde üç matrise ayrıştırılabilir:

Özdeğer ayrışımı denklemi

burada P , A'nın özvektörlerinden oluşan matristir; D , sıfır olmayan elemanları matrisin sıralanmış özdeğerleri olan diyagonal bir matristir ve P-1 , P matrisinin tersidir.

Özdeğer Ayrışımının Arkasındaki Matematik

Bir kare matrisin özdeğer ayrışımını analitik olarak türetmek için gerekli matematiksel adımları bir örnek üzerinden göstereceğim. Örnek matrisimiz 2x2 boyutunda kare A matrisidir. Matrisleri birleştirme tekniklerinde zorlanırsanız, matris çarpımının nasıl çalıştığını rahatça kavramak için R ile Veri Bilimi için Lineer Cebir  kursumuzu alın. Örnek kare matris

A matrisi üzerinde özdeğer ayrışımı yapmak için bu kare matrisin özdeğerlerini ve karşılık gelen özvektörlerini türetmemiz gerekir. Bu matrisin özdeğerlerini ve özvektörlerini hesaplamak için matrisin karakteristik polinomunu kullanabiliriz. Bu kısma aşina değilseniz önce Karakteristik Denklem: Veri Bilimi İçin Bilmeniz Gereken Her Şey yazısını okuyun. 

Şimdi, karakteristik polinom tanımından hareketle şuna sahibiz:

Karakteristik polinom

Matrisimiz A için karakteristik polinom pA(λ) = λ2 - 18λ + 56 olur. Bu polinomu sıfıra eşitleyerek köklerini bulup özdeğerleri elde edebiliriz: 

Dolayısıyla özdeğerler λ1 = 14 ve λ1 = 4'tür. Özdeğerlerden hareketle, her bir özdeğer için (A - λI)X = 0 denklemini kullanarak matrisin özvektörlerini elde edebiliriz:

λ1 = 14 için 14'ü yerine koyup homojen denklem sistemini çözüyoruz:

Bu, tek boyutlu (yani bir tek baz vektörü olan) bir özuzay verir. Aynı işlemi λ1 = 4 için yapıp şunu elde ederiz:

Artık A matrisinin özdeğerlerini ve özvektörlerini elde ettiğimize göre, A'nın özdeğer ayrışımını şöyle yazabiliriz:

A matrisinin özdeğer ayrışımı

Burada P'yi iki özvektörü bir araya getirerek (yan yana koyarak) oluşturduk ve özdeğerleri (azalan düzende) D matrisinin köşegenine yerleştirdik. 

Elbette özdeğer ayrışımını bir bilgisayar sistemi ve Python ya da R gibi bir programlama diliyle de yapabiliriz. Python ve R'nin, özvektörleri normalize (0-1 ölçeğinde) üretebileceğini unutmayın (yani ortonormal bir baz). Bu durum, doğrulama amacıyla PDP-1 ifadesinden A matrisini yeniden kurmaya çalışırken önemlidir.

Veri Biliminde Özdeğer Ayrışımının Uygulamaları

Özdeğer ayrışımı, makine öğrenimi ve istatistikte önemli bir rol oynar. Makine öğreniminde, özdeğer ayrışımı PCA gibi boyut indirgeme yöntemlerinde kullanılır. PCA'de, orijinal yüksek boyutlu koordinatlar için maksimum bilgiyi koruyan yeni boyutlar (yönler) aranır. Matrisin özdeğer ayrışımı, özdeğerleri ortaya çıkarır; en yüksek özdeğerlere sahip özvektörler daha fazla bilgi taşır ve bu nedenle verinin temel bileşenleri olarak belirlenir.

Python ve R ile Özdeğer Ayrışımı Yapmak

Özdeğer ayrışımını kalem-kağıtla nasıl yapacağınızı öğrendikten sonra, aynı işlemi bir bilgisayar ve Python ile R gibi bir programlama dili kullanarak birkaç satırda gerçekleştirebiliriz. Python ve R'de hesaplanan özvektörlerin, sembolik programlama dilleri ya da paketleri (ör. Python'da SymPy) ile karşılaştırıldığında normalize edildiğini unutmayın.

Python'da Özdeğer Ayrışımı

Python'da özdeğer ayrışımı yapmak için NumPy modülünün kurulup ortama aktarılması gerekir. Aşağıdaki kod, kare ve simetrik olmayan A matrisi için Python'da özdeğer ayrışımının nasıl yapıldığını göstermektedir:

import numpy as np

A = np.array([[6,8], [2,12]]) 

eigVals, eigVecs = np.linalg.eig(A)

print(eigVals)
print(eigVecs)
[ 4. 14.]
[[-0.9701425  -0.70710678]
 [ 0.24253563 -0.70710678]]
 # Reconstruct the original matrix A
D = np.diag(eigVals)
A_reconstructed = eigVecs @ D @ np.linalg.inv(eigVecs)

print(A_reconstructed)
[[ 6.  8.]
 [ 2. 12.]]

R'de Özdeğer Ayrışımı

R'de özdeğer ayrışımı yerleşik eigen() fonksiyonu ile yapılabilir; dolayısıyla küçük matrislerin özdeğer ayrışımı için paket kurup içe aktarmaya gerek yoktur. Aşağıdaki R kodu A matrisi üzerinde özdeğer ayrışımı yapar (R, özdeğerleri azalan düzende sıralar; bu nedenle özvektörlerin sırası, Python NumPy çıktısından farklıdır):

A <- matrix(c(6,8,2,12), 2,2, byrow = TRUE)

print(A)

eDecomp <- eigen(A)
eigValues <- eDecomp$values
eigVectors <- eDecomp$vectors

print(eigValues)
print(eigVectors)
[1] 14  4
           [,1]       [,2]
[1,] -0.7071068 -0.9701425
[2,] -0.7071068  0.2425356
A_Reconstructed <- eigVectors %*% diag(eigValues) %*% (solve(eigVectors))

print(A_Reconstructed)
Show in New Window
     [,1] [,2]
[1,]    6    8
[2,]    2   12

Özdeğer Ayrışımı ve Tekil Değer Ayrışımı (SVD)

Özdeğer ayrışımı ve tekil değer ayrışımı (SVD), makine öğrenimi ve bilimsel hesaplamada kullanılan iki önemli matris ayrıştırma yöntemidir. Her iki yöntem de bir matrisi üç matrise ayırsa da bazı farkları vardır:

  • Özdeğer ayrışımı yalnızca kare matrislere uygulanabilirken, SVD kare ve dikdörtgen matrislere uygulanabilir.
  • SVD'de elde edilen matrisler tekil değerleri içerirken, özdeğer ayrışımında elde edilenler özdeğerleri içerir.
  • SVD kare olmayan matrisleri de kapsayabildiği için, özdeğer ayrışımına kıyasla daha geniş uygulama alanına sahiptir.

Sonuç

Bu kısa lineer cebir yazısında, özdeğer ayrışımını, kalem-kağıtla nasıl yapılacağını ve Python ile R kullanarak nasıl hesaplanacağını öğrendik. Ayrıca, özdeğer ayrışımının PCA gibi makine öğrenimi algoritmalarında nasıl kullanıldığını gördük. 

Veri analisti ya da veri bilimci olmayı ciddi biçimde istiyorsanız, uygulamalı matematik ve programlamada sağlam bir temel edinmek için R ile Veri Bilimi için Lineer Cebir kursumuzu almanızı önemle tavsiye ederim. Ayrıca, denetimli, denetimsiz ve derin öğrenmeyi keşfetmek için kapsamlı Python ile Makine Öğrenimi Bilimcisi kariyer yolumuza kaydolun. 

Vahab Khademi

Yazar

Vahab Khademi

Eğitimim matematik ve istatistik alanlarında. İstatistiksel modelleme ve makine öğrenmesi uygulamalarında kapsamlı deneyime sahibim. Ayrıca, ML matematiği üzerine araştırmalar yapıyorum.

Özdeğer Ayrışımı SSS

Özdeğer ayrışımı nedir?

Özdeğer ayrışımı, bir kare matrisin özdeğerlerine ve özvektörlerine ayrıştırılması sürecidir.

Özdeğer ayrışımı ne zaman mümkündür?

Özdeğer ayrışımı yalnızca kare matrisler için mümkündür. Ancak her kare matris bu şekilde ayrıştırılamaz. Bir matrisin diyagonalize edilebilir olması gerekir; bu da genellikle doğrusal bağımsız özvektörlerin tam bir kümesine sahip olmasını gerektirir. Bu ölçütü karşılamayan matrisler (örneğin diyagonalize edilemeyen veya kusurlu matrisler) için, özdeğer ayrışımı klasik anlamda mümkün değildir.

Konular

İlgili