Découpage des signaux en composantes

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous explorerons le sujet de la décomposition de signaux en composantes à l'aide de techniques de factorisation matricielle fournies par scikit-learn. Nous aborderons des techniques telles que l'Analyse en Composantes Principales (PCA), l'Analyse en Composantes Indépendantes (ICA), la Factorisation en Matrice Non Négative (NMF), etc. Ce laboratoire vous guidera tout au long du processus de décomposition de signaux en leurs composantes étape par étape.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous réglerons rapidement le problème pour vous.

Analyse en Composantes Principales (PCA)

PCA exacte et interprétation probabiliste

L'Analyse en Composantes Principales (PCA) est utilisée pour décomposer un ensemble de données multivariées en un ensemble de composantes orthogonales successives qui expliquent la plus grande partie de la variance. La PCA peut être implémentée à l'aide de la classe PCA de scikit-learn. La méthode fit est utilisée pour apprendre les composantes, et la méthode transform peut être utilisée pour projeter de nouvelles données sur ces composantes.

from sklearn.decomposition import PCA

## Crée un objet PCA avec n_components comme nombre de composantes souhaitées
pca = PCA(n_components=2)

## Ajuste le modèle PCA aux données
pca.fit(data)

## Transforme les données en les projetant sur les composantes apprises
transformed_data = pca.transform(data)

Analyse en Composantes Indépendantes (ICA)

ICA pour la séparation des sources aveugles

L'Analyse en Composantes Indépendantes (ICA) est utilisée pour séparer des signaux mélangés en leurs composantes source d'origine. Elle suppose que les composantes sont statistiquement indépendantes et peuvent être extraites grâce à un processus de désassemblage linéaire. L'ICA peut être implémentée à l'aide de la classe FastICA de scikit-learn.

from sklearn.decomposition import FastICA

## Crée un objet ICA avec n_components comme nombre de composantes souhaitées
ica = FastICA(n_components=2)

## Ajuste le modèle ICA aux signaux mélangés
ica.fit(mixed_signals)

## Sépare les signaux mélangés en leurs composantes source d'origine
source_components = ica.transform(mixed_signals)

Factorisation en Matrice Non Négative (NMF)

NMF avec la norme de Frobenius

La Factorisation en Matrice Non Négative (NMF) est une approche alternative de décomposition qui suppose des données et des composantes non négatives. Elle trouve une décomposition des données en deux matrices d'éléments non négatifs en optimisant la distance entre les données et le produit matriciel des deux matrices. La NMF peut être implémentée à l'aide de la classe NMF de scikit-learn.

from sklearn.decomposition import NMF

## Crée un objet NMF avec n_components comme nombre de composantes souhaitées
nmf = NMF(n_components=2)

## Ajuste le modèle NMF aux données
nmf.fit(data)

## Découpe les données en les deux matrices non négatives
matrix_W = nmf.transform(data)
matrix_H = nmf.components_

Allocation Latente de Dirichlet (LDA)

LDA pour la modélisation de sujets

L'Allocation Latente de Dirichlet (LDA) est un modèle probabiliste génératif utilisé pour découvrir des sujets abstraits à partir d'un ensemble de documents. LDA suppose que les documents sont un mélange de sujets et que les mots sont générés par ces sujets. LDA peut être implémentée à l'aide de la classe LatentDirichletAllocation de scikit-learn.

from sklearn.decomposition import LatentDirichletAllocation

## Crée un objet LDA avec n_components comme nombre de sujets souhaités
lda = LatentDirichletAllocation(n_components=5)

## Ajuste le modèle LDA à la matrice document-terme
lda.fit(document_term_matrix)

## Obtiens la matrice sujet-terme et la matrice document-sujet
topic_term_matrix = lda.components_
document_topic_matrix = lda.transform(document_term_matrix)

Sommaire

Dans ce laboratoire, nous avons exploré diverses techniques pour décomposer des signaux en leurs composantes. Nous avons appris sur l'Analyse en Composantes Principales (PCA), l'Analyse en Composantes Indépendantes (ICA), la Factorisation en Matrice Non Négative (NMF) et l'Allocation Latente de Dirichlet (LDA). Ces techniques sont largement utilisées dans diverses applications telles que la réduction de dimension, la séparation des sources aveugles, la modélisation de sujets, etc. En appliquant ces techniques, nous pouvons obtenir des informations et extraire des informations significatives à partir de signaux et d'ensembles de données de haute dimension.