La réduction de la dimensionnalité est une technique cruciale de l'apprentissage automatique et de l'analyse des données. Il transforme les données de haute dimension en une représentation à moindre dimension, préservant les informations essentielles. Des ensembles de données à haute dimension, avec de nombreuses fonctionnalités, posent des défis pour les modèles d'apprentissage automatique. Ce tutoriel explore les raisons de l'utilisation de la réduction de la dimensionnalité, de diverses techniques et de leur application sur les données d'image. Nous allons visualiser les résultats et comparer les images dans l'espace de dimension inférieure.
Pour une compréhension complète de l'apprentissage automatique, considérez la piste de carrière "de devenir un apprentissage automatique en python".
Des données à haute dimension, tandis que riche en informations, comprennent souvent des caractéristiques redondantes ou non pertinentes. Cela entraîne des problèmes comme:
La réduction de la dimensionnalité simplifie les données tout en conservant des caractéristiques clés, en améliorant les performances et l'interprétabilité du modèle.
Les techniques de réduction de la dimensionnalité sont classées comme linéaires ou non linéaires:
Méthodes linéaires: Celles-ci supposent que les données se trouvent dans un sous-espace linéaire. Ils sont efficaces en calcul et adaptés aux données structurées linéairement. Les exemples incluent:
Méthodes non linéaires: utilisées lorsque les données résident sur un collecteur non linéaire. Ils capturent mieux les structures de données complexes. Les exemples incluent:
La réduction de la dimensionnalité est largement classée en:
Sélection des fonctionnalités: Sélectionne les fonctionnalités les plus pertinentes sans transformer les données. Les méthodes incluent le filtre, l'emballage et les méthodes intégrées.
Extraction des fonctionnalités: Transforme les données en un espace de dimension inférieure en créant de nouvelles fonctionnalités à partir de combinaisons de celles originales. Ceci est utile lorsque les caractéristiques originales sont corrélées ou redondantes. Les méthodes PCA, LDA et non linéaires relèvent de cette catégorie.
appliquons la réduction de la dimensionnalité à un ensemble de données d'image à l'aide de Python:
1. Chargement de l'ensemble de données:
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)
Cela charge l'ensemble de données des chiffres (chiffres manuscrits 0-9, chacun 8x8 pixels, aplati à 64 fonctionnalités).
2. Visualiser les images:
def plot_digits(images, labels, n_rows=2, n_cols=5): # ... (plotting code as before) ...
Cette fonction affiche des exemples d'images.
3. Appliquer 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)
Cela fait évoluer les données, sélectionne un sous-ensemble d'efficacité et applique le T-SNE pour réduire à 2 dimensions.
4. Visualiser la sortie 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()
Cela visualise la représentation 2D T-SNE, codée par couleur par étiquette de chiffre.
5. Comparaison des images:
import random idx1, idx2 = random.sample(range(X_tsne.shape[0]), 2) # ... (distance calculation and image plotting code as before) ...
Cela sélectionne au hasard deux points, calcule leur distance dans l'espace T-SNE et affiche les images correspondantes.
La réduction de la dimensionnalité améliore l'efficacité, la précision et l'interprétabilité du modèle d'apprentissage automatique, améliorant la visualisation et l'analyse des données. Ce tutoriel a couvert des concepts, des méthodes et des applications de réduction de la dimensionnalité, démontrant l'utilisation de T-SNE sur les données d'image. Le cours "Réduction de la dimensionnalité en Python" fournit un apprentissage approfondi.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!