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
-
Extraire des échantillons aléatoires à l’aide de la fonction
randsample
dans MATLAB -
Extraire des échantillons aléatoires à l’aide de la fonction
datasample
dans MATLAB -
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
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)
Où 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 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