Rumah > Peranti teknologi > AI > Memahami pengurangan dimensi

Memahami pengurangan dimensi

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-03-01 09:15:11
asal
499 orang telah melayarinya

Pengurangan dimensi adalah teknik penting dalam pembelajaran mesin dan analisis data. Ia mengubah data dimensi tinggi ke dalam perwakilan dimensi yang lebih rendah, memelihara maklumat penting. Dataset dimensi tinggi, dengan pelbagai ciri, menimbulkan cabaran untuk model pembelajaran mesin. Tutorial ini meneroka sebab -sebab menggunakan pengurangan dimensi, pelbagai teknik, dan aplikasi mereka untuk data imej. Kami akan memvisualisasikan hasilnya dan membandingkan imej di ruang dimensi yang lebih rendah.

untuk pemahaman yang komprehensif tentang pembelajaran mesin, pertimbangkan "menjadi saintis pembelajaran mesin dalam python" trek kerjaya.

mengapa mengurangkan dimensi?

Data dimensi tinggi, sementara maklumat yang kaya, sering termasuk ciri-ciri berlebihan atau tidak relevan. Ini membawa kepada masalah seperti:

  1. Kutukan dimensi: Dimensi yang tinggi menjadikan titik data jarang, menghalang pengiktirafan corak oleh model pembelajaran mesin.
  2. Model overfitting: mungkin mempelajari bunyi bising dan bukannya corak asas.
  3. kerumitan komputasi: Dimensi peningkatan dengan ketara meningkatkan kos pengiraan.
  4. Kesukaran visualisasi: Menggambarkan data melebihi tiga dimensi adalah mencabar.

pengurangan dimensi memudahkan data semasa mengekalkan ciri -ciri utama, meningkatkan prestasi model dan tafsiran.

linear vs kaedah nonlinear

Teknik pengurangan dimensi dikategorikan sebagai linear atau tidak linear:

Kaedah linear: Mengandaikan data ini terletak di dalam subspace linear. Mereka komputasi yang cekap dan sesuai untuk data berstruktur secara linear. Contohnya termasuk:

  • Analisis Komponen Utama (PCA): Mengenal pasti arahan (komponen utama) memaksimumkan varians data.
  • Analisis diskriminasi linear (LDA): berguna untuk klasifikasi, memelihara pemisahan kelas semasa pengurangan dimensi. Ketahui lebih lanjut dalam tutorial "Komponen Utama (PCA) dalam Python" tutorial.

Kaedah nonlinear: Digunakan apabila data tinggal di manifold tak linear. Mereka menangkap struktur data yang kompleks dengan lebih baik. Contohnya termasuk:

  • T-SNE (T-distribusi Stochastic Neighbor Embedding): menggambarkan data dimensi tinggi dalam dimensi yang lebih rendah (2D atau 3D) sambil memelihara hubungan tempatan. Lihat panduan T-SNE kami untuk maklumat lanjut.
  • umap (penghampiran dan unjuran manifold seragam): Sama dengan T-SNE, tetapi lebih cepat dan lebih baik dalam memelihara struktur global.
  • autoencoders: rangkaian saraf yang digunakan untuk pemampatan data tanpa pengawasan.

Jenis pengurangan dimensi

pengurangan dimensi secara meluas diklasifikasikan ke dalam:

Pemilihan Ciri: Pilih ciri -ciri yang paling relevan tanpa mengubah data. Kaedah termasuk penapis, pembalut, dan kaedah tertanam.

Pengekstrakan ciri: Mengubah data menjadi ruang dimensi yang lebih rendah dengan membuat ciri-ciri baru dari kombinasi yang asal. Ini berguna apabila ciri -ciri asal berkorelasi atau berlebihan. Kaedah PCA, LDA, dan bukan linear berada di bawah kategori ini.

pengurangan dimensi pada data imej

mari kita gunakan pengurangan dimensi ke dataset imej menggunakan python:

1. Memuatkan Dataset:

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

digits = load_digits()
X = digits.data  # (1797, 64)
y = digits.target # (1797,)

print("Data shape:", X.shape)
print("Labels shape:", y.shape)
Salin selepas log masuk

Ini memuatkan dataset digit (digit tulisan tangan 0-9, masing-masing 8x8 piksel, diratakan hingga 64 ciri).

2. Menggambarkan Imej:

def plot_digits(images, labels, n_rows=2, n_cols=5):
    # ... (plotting code as before) ...
Salin selepas log masuk

Fungsi ini memaparkan gambar sampel.

3. Memohon T-SNE:

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

n_samples = 500
X_sub = X_scaled[:n_samples]
y_sub = y[:n_samples]

tsne = TSNE(n_components=2, perplexity=30, n_iter=1000, random_state=42)
X_tsne = tsne.fit_transform(X_sub)

print("t-SNE result shape:", X_tsne.shape)
Salin selepas log masuk

ini skala data, memilih subset untuk kecekapan, dan menggunakan T-SNE untuk mengurangkan hingga 2 dimensi.

4. Menggambarkan output T-SNE:

plt.figure(figsize=(8, 6))
scatter = plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y_sub, cmap='jet', alpha=0.7)
plt.colorbar(scatter, label='Digit Label')
plt.title('t-SNE (2D) of Digits Dataset (500-sample)')
plt.show()
Salin selepas log masuk

Ini menggambarkan perwakilan 2D T-SNE, dikodkan warna oleh label digit.

5. Membandingkan Imej:

import random

idx1, idx2 = random.sample(range(X_tsne.shape[0]), 2)

# ... (distance calculation and image plotting code as before) ...
Salin selepas log masuk

Ini secara rawak memilih dua mata, mengira jarak mereka dalam ruang t-SNE, dan memaparkan imej yang sepadan.

Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction

Kesimpulan

pengurangan dimensi meningkatkan kecekapan model pembelajaran mesin, ketepatan, dan tafsiran, meningkatkan visualisasi dan analisis data. Tutorial ini meliputi konsep pengurangan dimensi, kaedah, dan aplikasi, menunjukkan penggunaan T-SNE pada data imej. Kursus "pengurangan dimensi dalam python" menyediakan pembelajaran lebih mendalam.

FAQS

  • Teknik pengurangan dimensi biasa: PCA dan T-SNE.
  • Pengawasan PCA: tanpa pengawasan.
  • Bila menggunakan pengurangan dimensi: Apabila berurusan dengan data dimensi tinggi untuk pengurangan kerumitan, prestasi model yang lebih baik, atau visualisasi.
  • Matlamat utama pengurangan dimensi: Mengurangkan ciri -ciri semasa memelihara maklumat penting.
  • Aplikasi kehidupan sebenar: pengkategorian teks, pengambilan imej, pengiktirafan muka, neurosains, analisis ekspresi gen.

Atas ialah kandungan terperinci Memahami pengurangan dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan