2
我有一個小問題,下面的代碼最後一行是具體的,我試圖找到我的「樣本」的類名稱,我的意思是我需要知道哪些正常和哪些smurf屬於我的1000x6樣本的每一行。匹配行樣本到類標籤
%% sampling
normIdx = strmatch('normal.', Book2);
normalSubset = fulldata(normIdx, :);
normal = randperm(size(normalSubset , 1));
p = (normal(1:750)-1)';
%
smurfIdx = strmatch('smurf.', Book2);
smurfSubset = fulldata(smurfIdx, :);
smurf = randperm(size(smurfSubset , 1));
a = (smurf(1:250)-1)';
%
normalSample = normalSubset (p, :);
smurfSample = smurfSubset (a, :);
%
sample = [normalSample ; smurfSample]
%
sample = sample(randperm(1000),:);
%
idx = [a ; p];
K1 = Book2(idx (sample==1), :)
K1應等於1000個樣品類別標籤,其中750應該是正常和250應藍精靈,他們應該恰好correspnd到樣品中的同一條線上。 Book2包含類別標籤,我也有從其派生樣本的完整數據。
大氣壓K1導致:
Index exceeds matrix dimensions
有可能只是在fulldata樣本的數據的匹配數據的一種簡單的方法,但林不知道是否有可能在fulldata重複數據...所以匹配已經結束,因爲sample
是隨機的,所以我拋棄了我可以做什麼來將類標籤與抽樣進行匹配。
嗯東西是不正確的在這裏,我tryed你的方法,但由於某種原因,其標籤的arent「正常」或「藍精靈」其他的事情......其他類的標籤我在第二冊......其假設只有750個正常標籤和250個smurf標籤,所以要麼沒有正確選擇正常,smurf或K1是錯誤的。 –
這可能是因爲idx不在洗牌? –
哦不,我看到了這個問題。這是因爲p和a僅涉及完整數據的子集,所以它們必須應用於Book2的子集。您需要從頭開始追蹤索引。是否有以Book2至fulldata的順序映射的1對1映射?如果有,那麼你只需要做什麼來完整數據到Book2,並且總是將你的randperms保存在一個變量中,以確保他們的fulldata和book2總是被混洗在一起 – Dan