1

私のデータは、16 チャネル x 128 サンプル x 400 トライアルで構成されています。このデータセットで徹底的なチャネル選択を実行したい。PCA はどこに適用すればよいですか?

unsortedChannelIndices = [1:16]
sortedChannelIndices = [];

%Option 1
reducedData = PCA(data, classIndeces)

for chIdx = 1:length(unsortedChannelIndices)

   for c=1:length(unsortedChannelIndices)
      thisChannel = unsortedChannelIndices(c)
      thisChannelSet = [sortedChannelIndices, thisChannel];

      %Option 1
      thisData = reducedData(thisChannelSet,:,:);

      %Option 2
      thisData = PCA(data(thisChannelSet, classIndeces)

      thisPerformance(c) = eval_perf(thisData);%crossvalidation
    end
    [performance(chIdx),best] = max(thisPerformance);
    sortedChannelIndices = [sortedChannelIndices,unsortedChannelIndices(best)];
    unsortedChannelIndices(best) =  [];
end
4

1 に答える 1

0

PCA または任意の次元削減手法を、分析するデータに適用する必要があります。より少ないチャネル (例: 1:4) に対応するサブセットのパフォーマンスを評価したい場合は、このデータ (PCA(data([1:4)),:,:) に任​​意の次元削減手法を適用する必要があります。したがって、オプション 2が正しい選択肢です。

于 2015-10-15T02:27:22.830 に答える