Boyutsal azaltmanın önemini, tekniklerini ve bunları görüntü veri kümelerine nasıl uygulayacağınızı keşfedin; verileri daha düşük boyutlu uzaylarda görselleştirip karşılaştırırken.
Boyutsal azaltma, yüksek boyutlu verileri mümkün olduğunca çok önemli bilgiyi koruyarak daha düşük boyutlu bir uzaya dönüştürmeyi içeren, makine öğrenimi ve veri analizinde güçlü bir tekniktir. Yüksek boyutlu veri, çok sayıda özellik veya değişken içeren veri kümelerini ifade eder ve bu durum makine öğrenimi modelleri için önemli zorluklar yaratabilir.
Bu eğitimde, boyutsal azaltmayı neden kullanmamız gerektiğini, boyutsal azaltma tekniklerinin türlerini ve bu tekniklerin basit bir görüntü veri kümesine nasıl uygulanacağını öğreneceğiz. Ayrıca verileri 2B uzayda görselleştirip görüntüleri daha düşük boyutlu uzayda karşılaştıracağız.
Makine öğreniminde yeniyseniz ve makine öğrenimi kavramlarına hakim olmak istiyorsanız, Python ile Makine Öğrenimi Bilimcisi Olun kariyer yolunu takip ederek makine öğrenimi bilimcisi olmaya doğru ilerleyin.
Görsel: Yazar
Neden Boyutsal Azaltma?
Bilgi açısından zengin olsa da yüksek boyutlu veriler genellikle fazlalık veya ilgisiz özellikler içerir. Bu da çeşitli sorunlara yol açabilir:
Hesaplama karmaşıklığı: Daha fazla boyut, daha yüksek hesaplama maliyeti demektir; bu da eğitim ve çıkarımı yavaşlatabilir.
Görselleştirme zorlukları: Üçten fazla boyuta sahip verileri görselleştirmek, verinin yapısını anlamayı güçleştirir.
Boyutsal azaltma, veriyi sadeleştirirken en önemli özelliklerini koruyarak bu sorunları giderir. Bu yalnızca model performansını artırmakla kalmaz, aynı zamanda veriyi yorumlamayı ve görselleştirmeyi de kolaylaştırır.
Doğrusal ve Doğrusal Olmayan Boyutsal Azaltma
Boyutsal azaltma teknikleri, veride doğrusal veya doğrusal olmayan bir yapı varsayıp varsaymadıklarına göre de sınıflandırılabilir.
Doğrusal yöntemler
Doğrusal yöntemler, verinin doğrusal bir alt uzayda yer aldığını varsayar. Bu teknikler hesaplama açısından verimlidir ve verinin yapısı doğası gereği doğrusal olduğunda iyi çalışır.
Bazı örnekler şunlardır:
Temel Bileşenler Analizi (PCA): verideki varyansı en çok yakalayan yönleri (temel bileşenleri) belirler. Mümkün olduğunca fazla varyansı koruyarak boyutları azaltmak için yaygın olarak kullanılır.
Doğrusal Ayırma Analizi (LDA): sınıflandırma görevleri için özellikle kullanışlıdır; boyutları azaltırken sınıf ayrışabilirliğini korur.
Şu eğitimi takip edin:Python ile Temel Bileşenler Analizi (PCA); Denetimsiz şekilde meme kanseri ve CIFAR-10 veri kümeleriyle veriden nasıl bilgi çıkarılacağını öğrenin.
Doğrusal olmayan yöntemler
Verinin doğrusal olmayan bir manifold üzerinde yer aldığı durumlarda doğrusal olmayan yöntemler kullanılır. Bu teknikler, verideki karmaşık yapıları yakalamada daha uygundur.
Bazı örnekler şunlardır:
t-SNE (t-Distributed Stochastic Neighbor Embedding): veri noktaları arasındaki yerel ilişkileri koruyarak yüksek boyutlu veriyi 2B veya 3B’de görselleştirmek için popüler bir yöntemdir. Daha fazla bilgi için t-SNE rehberimizi okuyun.
UMAP (Uniform Manifold Approximation and Projection): t-SNE’ye benzer, ancak daha hızlıdır ve küresel yapıyı korumada daha iyidir.
Otoenkoderler: Denetimsiz öğrenmeyle verinin temsilini sıkıştırmak için kullanılan sinir ağlarıdır.
Boyutsal Azaltma Türleri
Boyutsal azaltma teknikleri genel olarak iki türe ayrılabilir: Özellik seçimi ve Özellik çıkarımı.
Özellik seçimi
Özellik seçimi, veri kümesinden yalnızca en ilgili özellikleri belirlemeyi ve saklamayı içerir. Bu süreç veriyi dönüştürmez; bunun yerine orijinal özelliklerin bir alt kümesini seçer.
Yaygın yöntemler şunlardır:
Filtre yöntemleri: Özellikleri sıralamak ve seçmek için istatistiksel ölçüler kullanır.
Sarma (wrapper) yöntemleri: Özellik alt kümelerini değerlendirmek için makine öğrenimi modelleri kullanır.
Gömülü yöntemler: Model eğitimi sırasında özellik seçimi yapar.
Özellik çıkarımı
Özellik çıkarımı, özellik izdüşümü olarak da bilinir; veriyi, orijinal özelliklerin kombinasyonlarından oluşan yeni özellikler yaratarak daha düşük boyutlu bir uzaya dönüştürür. Bu yaklaşım, orijinal özelliklerin yüksek derecede ilişkili veya mükerrer olduğu durumlarda özellikle kullanışlıdır.
Popüler özellik çıkarım yöntemleri şunlardır:
PCA: Veriyi maksimum varyans yönlerine izdüşürür.
LDA: Sınıf ayrışabilirliğini en üst düzeye çıkarmaya odaklanır.
Doğrusal olmayan yöntemler: Veri doğrusal olmayan bir manifold üzerindeyse t-SNE, UMAP ve otoenkoder gibi teknikler kullanılır.
Görüntü Verileri için Boyutsal Azaltma
Bu rehberde boyutsal azaltma tekniklerini Python’da nasıl uygulayacağımızı öğreneceğiz.
1. Bir görüntü veri kümesiyle çalışma
Gerekli Python paketlerini içe aktararak ve sklearn.datasets içindeki digits veri kümesini yükleyerek başlayacağız.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.manifold import TSNE
from sklearn.preprocessing import StandardScaler
# Load the digits dataset
digits = load_digits()
X = digits.data # shape (1797, 64)
y = digits.target # labels for digits (0 through 9)print("Data shape:", X.shape)print("Labels shape:", y.shape)Altyapı:
Bu veri kümesi, her biri 8x8 görüntü (64 piksel) olarak temsil edilen 1.797 adet gri tonlamalı el yazısı rakam (0–9) içerir. Her görüntü, 64 boyutlu bir özellik vektörüne düzleştirilmiştir.
Veri kümesinden birkaç örneği görselleştirerek daha iyi bir anlayış edinelim. Matplotlib kullanarak, orijinal 8x8 ızgara biçimine yeniden şekillendirilmiş görüntüleri göstereceğiz.
Görüldüğü gibi, 0’dan 9’a gri tonlamada rakamların nasıl göründüğünü gösteren bir görüntü ızgarası sunar.
3. t-SNE uygulama
t-SNE, yüksek boyutlu veriyi 2B veya 3B’de görselleştirmek için popüler bir boyutsal azaltma tekniğidir. Verideki yerel yapıları korumada özellikle etkilidir.
perplexity=30: Perplexity, t-SNE’de yerel ve küresel yönler arasındaki dengeyi kontrol eden kilit bir hiperparametredir..
n_iter=1000: Optimizasyon için iterasyon sayısını belirler. Daha yüksek iterasyon sayısı, algoritmanın daha iyi yakınsamasını sağlar ancak hesaplama süresini de artırır.
random_state=42: Tekrarlanabilirlik için kullanılır.
Şimdi 2B t-SNE veri kümesini görselleştiriyoruz. Her nokta, rakam etiketine göre renklendirilir; bu sayede t-SNE’nin farklı rakam sınıflarını ne kadar iyi ayırdığını gözlemleyebiliriz.
t-SNE, gruplar arasında bir miktar örtüşme olsa da rakamları 10 ayrı grup halinde etkili biçimde ayırdı.
5. t-SNE uzayında görüntüleri karşılaştırma
t-SNE uzayını daha fazla keşfetmek için, rastgele iki nokta seçip 2B t-SNE uzayındaki Öklid uzaklığını hesaplıyoruz. Ayrıca görüntüleri görselleştirerek ne kadar benzer olduklarını gözlemleyeceğiz.
import random
idx1, idx2 = random.sample(range(X_tsne.shape[0]),2)
point1, point2 = X_tsne[idx1], X_tsne[idx2]
dist_tsne = np.linalg.norm(point1 - point2)print(f"Comparing images #{idx1} and #{idx2}")print(f"Distance in t-SNE space: {dist_tsne:.4f}")print(f"Label of image #{idx1}: {y_sub[idx1]}")print(f"Label of image #{idx2}: {y_sub[idx2]}")# Plot the original images
fig, axes = plt.subplots(1,2, figsize=(6,3))
axes[0].imshow(X[idx1].reshape(8,8), cmap='gray')
axes[0].set_title(f"Label: {y_sub[idx1]}")
axes[0].axis('off')
axes[1].imshow(X[idx2].reshape(8,8), cmap='gray')
axes[1].set_title(f"Label: {y_sub[idx2]}")
axes[1].axis('off')
plt.show()Altyapı:
t-SNE uzayındaki uzaklık, iki görüntünün indirgenmiş 2B gösterimde ne kadar farklı olduğunu yansıtır.
Comparing images #291 and #90
Distance in t-SNE space:35.7666
Label of image #291: 5
Label of image #90: 1Altyapı:
Yukarıdaki kodu çalıştırmakta sorun yaşıyorsanız daha fazla yardım için lütfen DataLab çalışma alanını kontrol edin.
Sonuç
Boyutsal azaltma, gerçek dünya uygulamalarında makine öğrenimi modellerinin verimliliğini, doğruluğunu ve yorumlanabilirliğini artırmanın yanı sıra karmaşık veri kümelerinin daha iyi görselleştirilmesini ve analizini mümkün kılarak kritik bir rol oynar.
Bu eğitimde boyutsal azaltma kavramını, amacını, yöntemlerini ve türlerini inceledik. Son olarak, t-SNE tekniğini kullanarak görüntü verilerini görselleştirme ve analiz için daha düşük boyutlu bir uzaya nasıl dönüştüreceğimizi öğrendik.
Şu kursu alın: Python ile Boyutsal Azaltma; verinizde boyutsal azaltma kavramını anlayın ve bunu Python’da yapmanın tekniklerine hakim olun.
Boyutsal Azaltma SSS
Boyut azaltma yapmak için kullanılan iki yaygın teknik nelerdir?⌄
İki yaygın teknik PCA ve t-SNE’dir.
PCA denetimli mi, denetimsiz mi?⌄
PCA denetimsiz bir öğrenme tekniğidir.
Boyutsal azaltma ne zaman kullanılmalıdır?⌄
Yüksek boyutlu verilerle uğraşırken karmaşıklığı azaltmak, model performansını iyileştirmek veya görselleştirmeyi mümkün kılmak için kullanılmalıdır.
Boyutsal azaltmanın başlıca amacı nedir?⌄
Temel amaç, önemli bilgiyi korurken özellik sayısını azaltmaktır.
Boyutsal azaltmanın gerçek hayattaki uygulamaları nelerdir?⌄
Uygulamalar arasında metin sınıflandırma, görüntü getirme, yüz tanıma, sinirbilim ve gen ifadesi analizi yer alır.
Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Yapay zekanın temellerini keşfedin, yapay zekayı işinizde etkili bir şekilde kullanmayı öğrenin ve dinamik yapay zeka dünyasında yolunuzu bulmak için ChatGPT gibi modellere dalın.
Boyutsal azaltma, yüksek boyutlu verileri mümkün olduğunca çok önemli bilgiyi koruyarak daha düşük boyutlu bir uzaya dönüştürmeyi içeren, makine öğrenimi ve veri analizinde güçlü bir tekniktir. Yüksek boyutlu veri, çok sayıda özellik veya değişken içeren veri kümelerini ifade eder ve bu durum makine öğrenimi modelleri için önemli zorluklar yaratabilir.
Bu eğitimde, boyutsal azaltmayı neden kullanmamız gerektiğini, boyutsal azaltma tekniklerinin türlerini ve bu tekniklerin basit bir görüntü veri kümesine nasıl uygulanacağını öğreneceğiz. Ayrıca verileri 2B uzayda görselleştirip görüntüleri daha düşük boyutlu uzayda karşılaştıracağız.
Makine öğreniminde yeniyseniz ve makine öğrenimi kavramlarına hakim olmak istiyorsanız, Python ile Makine Öğrenimi Bilimcisi Olun kariyer yolunu takip ederek makine öğrenimi bilimcisi olmaya doğru ilerleyin.
Görsel: Yazar
Neden Boyutsal Azaltma?
Bilgi açısından zengin olsa da yüksek boyutlu veriler genellikle fazlalık veya ilgisiz özellikler içerir. Bu da çeşitli sorunlara yol açabilir:
Boyutsal azaltma, veriyi sadeleştirirken en önemli özelliklerini koruyarak bu sorunları giderir. Bu yalnızca model performansını artırmakla kalmaz, aynı zamanda veriyi yorumlamayı ve görselleştirmeyi de kolaylaştırır.
Doğrusal ve Doğrusal Olmayan Boyutsal Azaltma
Boyutsal azaltma teknikleri, veride doğrusal veya doğrusal olmayan bir yapı varsayıp varsaymadıklarına göre de sınıflandırılabilir.
Doğrusal yöntemler
Doğrusal yöntemler, verinin doğrusal bir alt uzayda yer aldığını varsayar. Bu teknikler hesaplama açısından verimlidir ve verinin yapısı doğası gereği doğrusal olduğunda iyi çalışır.
Bazı örnekler şunlardır:
Şu eğitimi takip edin: Python ile Temel Bileşenler Analizi (PCA); Denetimsiz şekilde meme kanseri ve CIFAR-10 veri kümeleriyle veriden nasıl bilgi çıkarılacağını öğrenin.
Doğrusal olmayan yöntemler
Verinin doğrusal olmayan bir manifold üzerinde yer aldığı durumlarda doğrusal olmayan yöntemler kullanılır. Bu teknikler, verideki karmaşık yapıları yakalamada daha uygundur.
Bazı örnekler şunlardır:
Boyutsal Azaltma Türleri
Boyutsal azaltma teknikleri genel olarak iki türe ayrılabilir: Özellik seçimi ve Özellik çıkarımı.
Özellik seçimi
Özellik seçimi, veri kümesinden yalnızca en ilgili özellikleri belirlemeyi ve saklamayı içerir. Bu süreç veriyi dönüştürmez; bunun yerine orijinal özelliklerin bir alt kümesini seçer.
Yaygın yöntemler şunlardır:
Özellik çıkarımı
Özellik çıkarımı, özellik izdüşümü olarak da bilinir; veriyi, orijinal özelliklerin kombinasyonlarından oluşan yeni özellikler yaratarak daha düşük boyutlu bir uzaya dönüştürür. Bu yaklaşım, orijinal özelliklerin yüksek derecede ilişkili veya mükerrer olduğu durumlarda özellikle kullanışlıdır.
Popüler özellik çıkarım yöntemleri şunlardır:
Görüntü Verileri için Boyutsal Azaltma
Bu rehberde boyutsal azaltma tekniklerini Python’da nasıl uygulayacağımızı öğreneceğiz.
1. Bir görüntü veri kümesiyle çalışma
Gerekli Python paketlerini içe aktararak ve
sklearn.datasetsiçindeki digits veri kümesini yükleyerek başlayacağız.Bu veri kümesi, her biri 8x8 görüntü (64 piksel) olarak temsil edilen 1.797 adet gri tonlamalı el yazısı rakam (0–9) içerir. Her görüntü, 64 boyutlu bir özellik vektörüne düzleştirilmiştir.
2. Örnek görüntüleri görselleştirme
Veri kümesinden birkaç örneği görselleştirerek daha iyi bir anlayış edinelim. Matplotlib kullanarak, orijinal 8x8 ızgara biçimine yeniden şekillendirilmiş görüntüleri göstereceğiz.
Görüldüğü gibi, 0’dan 9’a gri tonlamada rakamların nasıl göründüğünü gösteren bir görüntü ızgarası sunar.
3. t-SNE uygulama
t-SNE, yüksek boyutlu veriyi 2B veya 3B’de görselleştirmek için popüler bir boyutsal azaltma tekniğidir. Verideki yerel yapıları korumada özellikle etkilidir.
Şu blogu okuyun: t-SNE’ye Giriş: Doğrusal Olmayan Boyutsal Azaltma ve Veri Görselleştirme; doğrusal olmayan bir boyutsal azaltma tekniği kullanarak yüksek boyutlu veriyi düşük boyutlu bir uzayda nasıl görselleştireceğinizi öğrenin.
t-SNE uygulamadan önce, özellik değerlerini normalize etmek için StandardScaler ile veriyi ölçeklendiriyoruz.
Ardından, daha hızlı hesaplama için 500 örnekten oluşan bir alt küme seçip t-SNE algoritmasını bu alt küme üzerinde çalıştırıyoruz.
İşte
TSNEfonksiyonunun argümanları ve açıklamaları:Boyutsal azaltma başarılı oldu; artık her biri 2 boyutta temsil edilen 500 örneğimiz var.
4. t-SNE çıktısını görselleştirme
Şimdi 2B t-SNE veri kümesini görselleştiriyoruz. Her nokta, rakam etiketine göre renklendirilir; bu sayede t-SNE’nin farklı rakam sınıflarını ne kadar iyi ayırdığını gözlemleyebiliriz.
t-SNE, gruplar arasında bir miktar örtüşme olsa da rakamları 10 ayrı grup halinde etkili biçimde ayırdı.
5. t-SNE uzayında görüntüleri karşılaştırma
t-SNE uzayını daha fazla keşfetmek için, rastgele iki nokta seçip 2B t-SNE uzayındaki Öklid uzaklığını hesaplıyoruz. Ayrıca görüntüleri görselleştirerek ne kadar benzer olduklarını gözlemleyeceğiz.
t-SNE uzayındaki uzaklık, iki görüntünün indirgenmiş 2B gösterimde ne kadar farklı olduğunu yansıtır.
Yukarıdaki kodu çalıştırmakta sorun yaşıyorsanız daha fazla yardım için lütfen DataLab çalışma alanını kontrol edin.
Sonuç
Boyutsal azaltma, gerçek dünya uygulamalarında makine öğrenimi modellerinin verimliliğini, doğruluğunu ve yorumlanabilirliğini artırmanın yanı sıra karmaşık veri kümelerinin daha iyi görselleştirilmesini ve analizini mümkün kılarak kritik bir rol oynar.
Bu eğitimde boyutsal azaltma kavramını, amacını, yöntemlerini ve türlerini inceledik. Son olarak, t-SNE tekniğini kullanarak görüntü verilerini görselleştirme ve analiz için daha düşük boyutlu bir uzaya nasıl dönüştüreceğimizi öğrendik.
Şu kursu alın: Python ile Boyutsal Azaltma; verinizde boyutsal azaltma kavramını anlayın ve bunu Python’da yapmanın tekniklerine hakim olun.