2014-01-19 70 views
0

如何從matlab中的數據集中隨機選擇一些數據?如何在matlab中隨機選擇公平數據

當我們使用randperm函數來選擇數據時,它們是隨機的和公平的?

+1

是的,我認爲你沒事。例如:'m = 6; Data = magic(m) shuffle = randperm(m);數據=數據(隨機播放,:);'''''''''''''''''''' – Darkmoor

回答

0

任何使用均勻分佈的東西都是「公平的」。因爲輸出應該是在特定範圍內隨機分佈的。例如,rand在matlab中的函數。

1

正如您已經建議的那樣,如果您不想重複,則可以使用randperm完成從n開始的一致隨機選擇的行的選擇k

實施例:

dataSet = rand(1000,4); 
idx = randperm(size(dataSet,1),10) 
dataSet(idx,:) 
1

如果有統計工具箱,可以使用randsample

sample = randsample(data,k); 

在矢量data花費隨機均勻採樣k值,無需更換,從這些值中。參見上面的鏈接瞭解其他選項。

等效代碼randperm

ind = randperm(numel(data)); 
sample = data(ind(1:k)); 

是,這些方法的執行提供了隨機樣本,是的,他們是公平。我認爲「公平」是指「統一」:data的每個條目都以相同的概率選取。