MATLAB でのデータセットを使用した行列または配列からのランダムサンプルの選択方法
-
MATLAB の
randsample
関数を使用してランダムサンプルを抽出する -
MATLAB の
datasample
関数を使用してランダムサンプルを抽出する -
MATLAB で
datasample
を使用して、データセット行列から列のランダムサンプルサブセットを抽出する
MATLAB のさまざまなコマンドを使用して、データセット、配列、または行列からランダムなサンプルを選択するさまざまな方法を見ていきます。
概念を明確にし、ランダムサンプルを取得する方法について完全な洞察を提供するために、データセットからランダムサンプルを抽出するコードの例を示して、Randn
、randsample
、datasample
などの関数についても説明します。出力がどのように見えるかを示すスニペットと一緒に置換/置換なしのように。
50,000 行のデータセットを含む行列があると仮定します。行列から 50 個のエンティティを含むランダムサンプルを選択します。このタスクは、複数のランダムサンプリング方法を使用して実行できます。これらのメソッドのリストを開始する前に、ランダムサンプル/データ/データセットは、データセットのマトリックスからランダムに選択されたデータであることに注意してください。バイアスやその他の望ましくない可能性のある影響を排除するために、ランダムサンプリングを使用します。しかし、それは私たちに見えるほど単純ではないことを覚えておく必要があります。データセットからランダムサンプルを選択することは、500 個のエンティティで構成されるデータセットから 10 個のエンティティを選択するよりも複雑です。また、ランダムサンプルが実際にランダムであるかどうかを確認する必要があります。
仮定を続けると、MATLAB を使用してデータセットからランダムサンプルを抽出できます。MATLAB は、特定のデータセットからランダムなサンプル/データを選択するためのいくつかの関数を提供します。たとえば、MATLAB の関数 randsample
を使用して、データを含む配列または行列から、置換/置換の有無にかかわらず、ランダムにサンプルを選択できます。
MATLAB の randsample
関数を使用してランダムサンプルを抽出する
N_obs
観測値がデータセット内のエントリからの置換でランダムに均一に選択されると仮定して、次の関数を使用します。
O_put = randsample(ourdata,N_obs)
ここで、N_obs
は観測数を表します。ourdata
がベクトルの場合、出力 O_put
もデータセットからの N_obs
ランダムサンプルで構成されるベクトルになります。
この関数を使用して、想定される問題を解決しましょう。
コード:
%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);
出力:
O_put =
46700
33937
42457
32788
1786
MATLAB の datasample
関数を使用してランダムサンプルを抽出する
ランダムなサンプルを抽出する際に次元を念頭に置きたい場合は、以下の関数を使用します。
y = datasample(ourdata,N_obs,'Replace',false)
Replace
が true
の場合、置換のあるサンプルを選択します。それ以外の場合は、交換せずにサンプルを選択します。Replace
が false
に設定されている場合、N_obs
を制限して、データセット内の設定された要素数を超えないようにします。
デフォルトでは、Replace
は true
です。
true
=置換されたサンプル。
false
=置換なしのサンプル。
これは、1 行のコードを記述することで実現できます。上記の仮定を念頭に置いて、以下のようにコードを作成します。
%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);
出力:
O_put =
24489 22279 32315 35467 37732
MATLAB で datasample
を使用して、データセット行列から列のランダムサンプルサブセットを抽出する
この目的のために、MATLAB の randn
関数を使用します。正規分布でランダムな値の配列を作成します。
I_put=randn(A)
は、ランダムに生成された要素を含む A 行 A 列の行列を生成します。
A がスカラー(ベクトル)でない場合、MATLAB はエラーメッセージを表示します。
ここで、ランダムサンプルを取得するために、datasample
関数を使用して、指定されたデータマトリックスのランダム列のサブセットを提供します。
コード:
I_put = randn(10,100000);
O_put = datasample(I_put,5,2,'Replace',false)
出力:
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