Méthodes de sélection pour un échantillon aléatoire à partir d'une matrice ou d'un tableau avec un ensemble de données dans MATLAB

Mehak Mubarik 30 janvier 2023
  1. Extraire des échantillons aléatoires à l’aide de la fonction randsample dans MATLAB
  2. Extraire des échantillons aléatoires à l’aide de la fonction datasample dans MATLAB
  3. Extraire des sous-ensembles d’échantillons aléatoires d’une colonne à partir d’une matrice d’ensemble de données à l’aide de datasample dans MATLAB
Méthodes de sélection pour un échantillon aléatoire à partir d'une matrice ou d'un tableau avec un ensemble de données dans MATLAB

Nous examinerons différentes méthodes pour sélectionner des échantillons aléatoires à partir de n’importe quel ensemble de données, tableau ou matrice à l’aide de différentes commandes de MATLAB.

Pour clarifier vos concepts et vous donner un aperçu complet sur la façon d’obtenir des échantillons aléatoires, nous expliquerons les fonctions comme Randn, randsample, datasample en donnant des exemples de codes pour extraire des échantillons aléatoires de votre jeu de données avec remplacement ainsi comme sans remplacement/substitution avec des extraits montrant à quoi ressemblera votre sortie.

Supposons que nous ayons une matrice contenant notre ensemble de données avec 50 000 lignes. Nous voulons sélectionner un échantillon aléatoire contenant 50 entités de notre matrice. Nous pouvons effectuer cette tâche en utilisant plus d’une méthode d’échantillonnage aléatoire. Avant de commencer à énumérer ces méthodes, gardez à l’esprit qu’un échantillon/données/ensemble de données aléatoire est une donnée choisie au hasard dans une matrice d’un ensemble de données. Pour éliminer les biais et autres répercussions possibles indésirables, nous utilisons un échantillonnage aléatoire. Mais nous devons garder à l’esprit que ce n’est pas aussi simple qu’il nous semble. Sélectionner un échantillon aléatoire à partir d’un ensemble de données est plus compliqué que de sélectionner 10 entités dans un ensemble de données composé de 500 entités. Aussi, nous devons nous assurer que l’échantillon aléatoire est bien aléatoire ou non !

En continuant avec notre hypothèse, nous pouvons utiliser MATLAB pour extraire des échantillons aléatoires de notre ensemble de données. MATLAB nous fournit plusieurs fonctions pour sélectionner des échantillons/données aléatoires à partir d’un ensemble de données donné. Par exemple, nous pouvons utiliser la fonction randsample dans MATLAB pour choisir des échantillons au hasard dans n’importe quel tableau ou matrice contenant des données, avec et sans remplacement/substitution.

Extraire des échantillons aléatoires à l’aide de la fonction randsample dans MATLAB

En supposant que les observations N_obs sont uniformément choisies au hasard avec des remplacements à partir des entrées du jeu de données, nous utilisons la fonction :

O_put = randsample(ourdata,N_obs)

N_obs représente le nombre d’observations. Si ourdata est un vecteur, notre sortie O_put sera également un vecteur composé de N_obs échantillons aléatoires de l’ensemble de données.

Utilisons cette fonction pour résoudre notre problème supposé.

Code:

%Let's assume we have 50,000 entries in a dataset "ourdata".

ourdata=50000;

%We want to obtain 5 random samples from this dataset 

N_obs=5;

%Let's follow the above-explained concept and write our code

O_put = randsample(ourdata,N_obs);

Production :

O_put =

       46700
       33937
       42457
       32788
        1786

Extraire des échantillons aléatoires à l’aide de la fonction datasample dans MATLAB

Si nous voulons garder les dimensions à l’esprit lors de l’extraction d’échantillons aléatoires, nous utilisons la fonction ci-dessous.

y = datasample(ourdata,N_obs,'Replace',false)

Si Replace est true, on choisit l’échantillon avec remplacement ; sinon, nous choisissons l’échantillon sans remplacement. Si Replace est défini sur false, nous restreignons N_obs afin qu’il ne soit pas supérieur à notre nombre défini d’éléments dans l’ensemble de données.

Replace est true par défaut.

true = échantillon avec remplacement.

false = échantillon sans remplacement.

Nous pouvons accomplir cela en écrivant un code à une seule ligne. En gardant à l’esprit les hypothèses ci-dessus, nous formulons notre code comme ci-dessous.

%Let's assume we have 50,000 entries in a dataset "ourdata".
%We want to obtain 5 random samples from this dataset 
%Let's follow the above-explained concept and write our code using function
%datasample
%Let's Draw five unique values from the integers 1:50000 using 1 line code.

O_put = datasample(1:50000,5,'Replace',false);

Production :

O_put =

       24489       22279       32315       35467       37732

Extraire des sous-ensembles d’échantillons aléatoires d’une colonne à partir d’une matrice d’ensemble de données à l’aide de datasample dans MATLAB

Pour cela, nous utiliserons la fonction randn dans MATLAB. Il crée des tableaux de valeurs aléatoires avec une distribution normale.

I_put=randn(A) produit une matrice A-par-A qui contient des éléments générés aléatoirement.

Si A n’est pas scalaire (un vecteur), alors MATLAB affichera un message d’erreur.

Maintenant, pour obtenir nos échantillons aléatoires, nous allons utiliser la fonction datasample, donnant des sous-ensembles de colonnes aléatoires de notre matrice de données donnée.

Code:

I_put = randn(10,100000);
O_put = datasample(I_put,5,2,'Replace',false)

Production :

O_put =

-0.5995   -0.7377   -1.1902   -0.6021   -1.0812
-0.0572   -0.7831    0.4746    0.7105   -0.8038
 0.8401    1.0824   -0.3507    0.4069   -2.0817
-1.1358   -0.9041   -0.1702    0.5950    0.3954
-1.0887   -0.7766   -1.6901   -0.5047    1.1286
-0.0187   -0.3354   -0.7458    1.8554    0.8492
 0.3251   -0.4219    0.2440   -0.4750    0.7628
 1.4713   -1.9788   -1.6672    0.0035   -0.4316
 0.6880    1.4387   -1.3525   -0.6950    0.6411
-0.2777   -0.4776   -0.9841    1.2752    0.2645
Mehak Mubarik avatar Mehak Mubarik avatar

Mehak is an electrical engineer, a technical content writer, a team collaborator and a digital marketing enthusiast. She loves sketching and playing table tennis. Nature is what attracts her the most.

LinkedIn

Article connexe - MATLAB Random