すべての列のエントロピーを計算しようとしましたが、行列は次のようになります。
0.5 0.3333 0.2
0 0.3333 0.4
0.5 0.3333 0.4
すべての列の合計は 1 になりますが、マトリックスにはいくつかのゼロがあるため、log2(arr(i,:)) だけでは、結果に -Inf が含まれるため、すべてが機能しません
実際には私は巨大な行列を持っているので、プログラムを高速に実行したいのですが、回避策はありますか?
これが私の解決策です。 p .* log2(p) と同じくらい速く動作しますか?
log2p = log2(p);
log2p(log2p==-Inf)=0;
entropy = entropy - p .* log2p;