2

Excelにマトリックスがあります。行を正規化し、各行のエントロピーを計算する必要があります (確率分布と見なします)。

たとえば、私の行列が次のとおりであるとします。

2   0   3   5
0   1   0   0
1   0   3   2

行の正規化後、行列は次のようになります。

0.2000         0    0.3000    0.5000
     0    1.0000         0         0
0.1667         0    0.5000    0.3333

各行が確率分布であると仮定すると、各行のエントロピーは次のようになります。

1.0297
     0
1.0114

中間の行正規化行列を生成せずに上記のエントロピー値を計算したい。

Excelでこれを行うことは可能ですか?

注: 確率分布のエントロピーは次のように定義されます。

H(X) = sum over all x {-p(x) * log(p(x))}
4

2 に答える 2

5

A1:D3 に元の行列がある場合は、F1 でこの式を試してください

=SUM(-A1:D1/SUM(A1:D1)*IF(A1:D1<>0,LN(A1:D1/SUM(A1:D1))))

CTRL + SHIFT + ENTER で確認します (数式バーの数式の周りに中かっこが表示されるように)

F3にコピー

于 2012-09-21T18:16:48.897 に答える
1

エントロピーが x ln x で定義されていると仮定すると、次のことをお勧めします。

  1. 元のセルごとに ln(x) を計算する行列を作成します: IF(X>0;LN(X);0)
  2. x と ln(x) 行列を乗算する 2 番目の行列を作成します。
  3. 行の合計を計算します: SUM(A1:A4)

ただし、中間行列なしでこれを行う方法はわかりません。なぜこれが欲しいのですか?

于 2012-09-21T17:56:21.390 に答える