Yapay Zekâ 101
Boyut Azaltma Nedir?

Boyut Azaltma Nedir?
Boyut azaltma bir verisetinin boyutunu azaltmak için kullanılan bir işlemdir, birçok özelliği birkaç özellikte temsil eder. Örneğin, boyut azaltma, yirmi özellikli bir verisetini sadece birkaç özellikte azaltmak için kullanılabilir. Boyut azaltma, genellikle gözetimsiz öğrenme görevlerinde, birçok özelliği otomatik olarak sınıflara ayırarak kullanılır. Boyut azaltmanın neden ve nasıl kullanıldığını daha iyi anlamak için, yüksek boyutlu verilerin neden olduğu sorunlara ve boyut azaltmanın en popüler yöntemlerine bakacağız.
Daha Fazla Boyut Overfitting’e Neden Olur
Boyut, bir verisetindeki özelliklerin/sütunların sayısını ifade eder.
Sıklıkla, makine öğrenmesinde daha fazla özelliklerin daha iyi olduğu varsayılır, çünkü daha doğru bir model oluşturur. Ancak, daha fazla özellikler her zaman daha iyi bir model anlamına gelmez.
Verisetinin özellikleri, ne kadar yararlı olduklarına göre büyük ölçüde farklılık gösterebilir ve birçok özellik çok az önemlidir. Ayrıca, verisetindeki özelliklerin sayısı arttıkça, farklı özelliklerin kombinasyonlarının veride iyi temsil edilmesi için daha fazla örnek gereklidir. Bu nedenle, örneklerin sayısı özelliklerin sayısıyla orantılı olarak artar. Daha fazla örnek ve daha fazla özellik, modelin daha karmaşık olmasını gerektirir ve modeller daha karmaşık hale geldikçe overfitting’e karşı daha duyarlı hale gelirler. Model, eğitim verisindeki desenleri çok iyi öğrenir ve örnek dışı verilere genelleyemez.
Bir verisetinin boyutunu azaltmanın several faydaları vardır. Daha önce de bahsedildiği gibi, daha basit modeller overfitting’e karşı daha az eğilimlidir, çünkü modelin birbirleriyle ilgili özellikler hakkında daha az varsayıma ihtiyacı vardır. Ayrıca, daha az boyut daha az hesaplama gücü gerektirir ve daha az depolama alanı gerektirir. Bir verisetinin boyutunu azaltmak, birçok özelliği olan verisetleri için uygun olmayan algoritmaları kullanmanıza da olanak tanır.
Ortak Boyut Azaltma Yöntemleri
Boyut azaltma, özellik seçimi veya özellik mühendisliği ile yapılabilir. Özellik seçimi, mühendisin verisetinin en ilgili özelliklerini tanımlamasını içerir, जबकi özellik mühendisliği diğer özelliklerin birleştirilmesi veya dönüştürülmesi yoluyla yeni özellikler oluşturma sürecidir.
Özellik seçimi ve mühendisliği programlı olarak veya manuel olarak yapılabilir. Manuel olarak özellik seçimi ve mühendisliği yaparken, sınıflar arasındaki korelasyonları keşfetmek için verilerin görselleştirilmesi tipiktir. Bu şekilde boyut azaltma yapmak oldukça zaman alıcı olabilir, bu nedenle boyutu azaltmak için kullanılan en yaygın yöntemler, Python için Scikit-learn gibi kütüphanelerde bulunan algoritmaları kullanmayı içerir. Bu ortak boyut azaltma algoritmaları arasında: Principal Component Analysis (PCA), Singular Value Decomposition (SVD) ve Linear Discriminant Analysis (LDA) bulunur.
Gözetimsiz öğrenme görevleri için boyut azaltmada kullanılan algoritmalar genellikle PCA ve SVD’dir, जबकi denetimli öğrenme boyut azaltmasında kullanılan algoritmalar genellikle LDA ve PCA’dir. Denetimli öğrenme modellerinde, yeni oluşturulan özellikler sadece makine öğrenmesi sınıflandırıcısına beslenir. Bu açıklamada belirtilen kullanımların sadece genel kullanım örnekleri olduğunu ve bu tekniklerin sadece bu koşullarda kullanılmadığını unutmayın. Yukarıda açıklanan boyut azaltma algoritmaları sadece istatistiksel yöntemlerdir ve makine öğrenmesi modellerinin dışında da kullanılır.
Principal Component Analysis

Photo: Matrix with principal components identified
Principal Component Analysis (PCA) bir verisetinin özelliklerini analiz eden ve verilerin en etkili özelliklerini özetleyen istatistiksel bir yöntemdir. Verisetinin özellikleri, verilerin çoğunu koruyarak daha az boyuta sahip temsilciler olarak birleştirilir. Bunu “verileri daha yüksek boyutlu bir temsilinden birkaç boyuta ‘sıkıştırmak'” olarak düşünebilirsiniz.
PCA’nın yararlı olabileceği bir durum olarak, şarabın çeşitli yollarla nasıl tanımlanabileceğini düşünün. Şarabı CO2 seviyeleri, havalandırma seviyeleri gibi birçok spesifik özellik kullanarak tanımlamak mümkün olsa da, bu özellikler model için çok az önemlidir. Bunun yerine, şarabın türünü daha genel özellikler gibi tat, renk ve yaş kullanarak tanımlamak daha uygun olur. PCA, daha spesifik özellikleri birleştirmek ve daha genel, yararlı ve overfitting’e neden olma olasılığı daha thấp olan özellikler oluşturmak için kullanılabilir.
PCA, girişteki özelliklerin birbirleriyle ilgili olarak nasıl değiştiğini belirleyerek yapılır, özellikler arasındaki ilişkileri belirlemek için kovaryans matrisi oluşturulur. Bu, değişkenler arasındaki korelasyonları belirlemek için kullanılır, negatif kovaryans negatif korelasyonu, pozitif kovaryans ise pozitif korelasyonu gösterir.
Verisetinin en etkili bileşenleri, ilk değişkenlerin lineer kombinasyonlarını oluşturarak yapılır, bu da lineer cebir kavramları olan eigenvalues ve eigenvectors yardımıyla yapılır. Kombinasyonlar, ana bileşenlerin birbirleriyle ilişkisiz olması için oluşturulur. İlk değişkenlerdeki meisten bilgi, ilk birkaç ana bileşene sıkıştırılır, bu da orijinal verisetinin bilgilerini daha küçük boyutlu bir alanda yeni özellikler oluşturur.
Singular Value Decomposition

Photo: By Cmglee – Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297
Singular Value Decomposition (SVD) bir matrisin içindeki değerleri basitleştirmek için kullanılan bir yöntemdir, matrisi daha küçük parçalarına ayırır ve bu matrisle hesaplamalar yapmayı kolaylaştırır. SVD, gerçek değerli ve karmaşık matrisler için kullanılabilir, ancak bu açıklamanın amaçları için, gerçek değerli bir matrisi nasıl ayrıştırmak gerektiğini inceleyeceğiz.
Gerçek değerli verilerden oluşan bir matrisimiz olduğunu varsayalım ve matrisin içindeki sütunların/özelliklerin sayısını azaltmak istiyoruz. PCA gibi SVD de, matrisin boyutunu azaltırken, matrisin değişkenliğini mümkün olduğunca koruyarak matrisi sıkıştırır. Matris A üzerinde çalışmak istersek, matris A’yı U, D ve V olarak adlandırılan üç farklı matrise temsil edebiliriz. Matris A, x * y öğelerinden oluşurken, matris U, X * X öğelerinden oluşur (daha doğrusu bir orthogonal matristir). Matris V, farklı bir orthogonal matristir ve y * y öğelerinden oluşur. Matris D, x * y öğelerinden oluşur ve bir diyagonal matristir.
Matris A’nın değerlerini ayrıştmak için, orijinal singular matris değerlerini, yeni bir matriste bulunan diyagonal değerlere dönüştürmeliyiz. Orthogonal matrislerin özellikleri, diğer sayılarla çarpıldıklarında değişmez. Bu nedenle, matris A’yı, orthogonal matrisleri birleştirerek ve matris V’nin transpozunu alarak yaklaşık olarak temsil edebiliriz.
Matris A, U, D ve V matrislerine ayrıştırıldığında, bu matrisler matris A’daki verileri içerir. Ancak, matrislerin en sol sütunları, verilerin çoğunu içerir. Sadece bu ilk birkaç sütunu alabilir ve matris A’nın çok daha az boyutlu bir temsilini elde edebiliriz.
Linear Discriminant Analysis

Left: Matrix before LDA, Right: Axis after LDA, now separable
Linear Discriminant Analysis (LDA) bir işlemdir, çok boyutlu bir grafikten verileri alır ve bunları bir lineer grafiğe projeler. Bunu, iki farklı sınıfa ait veri noktalarının dolu olduğu bir 2B grafik düşünerek hayal edebilirsiniz. Veri noktalarının, iki sınıfı temiz bir şekilde ayıran bir çizgi çizilemeyecek şekilde dağıldığını varsayalım. Bu durumu ele almak için, 2B grafihteki noktalar, bir 1B grafiğe (bir çizgiye) indirgenebilir. Bu çizgi, veri noktalarının dağıldığı ve iki sınıfın en iyi şekilde ayrılmasını sağlayabileceği bir çizgi olabilir.
LDA’yı gerçekleştirirken iki ana hedef vardır. Birinci hedef, sınıfların varyansını en aza indirmektir, ikinci hedef ise sınıfların ortalama değerleri arasındaki mesafeyi en üst düzeye çıkarmaktır. Bu hedefler, sınıfları previously belirtilen hedeflere göre ayıran yeni bir eksen oluşturarak gerçekleştirilir. Yeni eksen oluşturulduktan sonra, 2B grafihteki noktalar bu eksen boyunca yerleştirilir.
Veri noktalarını orijinal konumlarından yeni eksen üzerindeki konumlarına taşımak için üç adım gerekir. İlk adımda, sınıfların ortalama değerleri arasındaki mesafe (sınıflar arası varyans) hesaplanır. İkinci adımda, sınıflar içindeki varyans hesaplanır, bu da ilgili sınıfın ortalama değerine olan mesafeyi belirleyerek yapılır. Son adımda, sınıflar arasındaki varyansı en üst düzeye çıkaran daha düşük boyutlu alan oluşturulur.
LDA tekniği, hedef sınıfların ortalama değerleri birbirinden uzak olduğunda en iyi sonuçları verir. LDA, sınıfların ortalama değerleri örtüştüğünde, sınıfları lineer bir eksenle etkili bir şekilde ayıramaz.












