0

以下は私のデータの10%をサンプリングする方法です:

%%
% Normal
normIdx = strmatch('normal.', K2);
normalSubset = cluster2(normIdx, :);
normal = randperm(size(normalSubset , 1));
p = (normal(1:3495))';

%% DoS
DoSIdx = strmatch('DoS', K2);
DoSSubset = cluster2(DoSIdx, :);
DoS = randperm(size(DoSSubset , 1));
a = (DoS(1:8))';

%%
ProbeIdx = strmatch('Probe', K2);
ProbeSubset = cluster2(ProbeIdx, :);
Probe = randperm(size(ProbeSubset , 1));
d = (Probe(1:71))';

%%
normalSample = normalSubset (p, :);
%%
DoSSample = DoSSubset (a, :);
%%
ProbeSample = ProbeSubset (d, :);

%%
idx = [normIdx(p);DoSIdx(a);ProbeIdx(d)];
%
sample = [normalSample ; DoSSample ; ProbeSample]
%
shuffle = randperm(3574);
%
TestData = sample(shuffle,:);
%
TestDataLabels = K2(idx (shuffle), :);

データセットからこの10%を削除するにはどうすればよいのでしょうか(cluster2)?私が10%と言うとき、私はこれを解決したことに注意してください。したがって、(プローブクラスの10%であるプローブ(1:71)など

4

1 に答える 1

2

私がそれを正しく理解していれば、あなたはあなたがidx保存したいすべての行を含むインデックスベクトルを持っています。

この場合、解決策は非常に単純です。それらを削除するには、@ H.Munsterで示されているアプローチに従うことができますが、正しいインデックスを使用します。

cluster2(idx, :) = [];
于 2012-11-21T11:11:28.877 に答える