2
我写了一个函数来计算向量的熵,其中每个元素表示一个类的元素的数量。纯分裂的熵计算为NaN
function x = Entropy(a)
t = sum(a);
t = repmat(t, [1, size(a, 2)]);
x = sum(-a./t .* log2(a./t));
end
e.g:a = [4 0]
,然后entropy = -(0/4)*log2(0/4) - (4/4)*log2(4/4)
但对于上述功能,熵是NaN
当分割是因为纯的log2(0)
,如在上面的示例。纯分裂的熵应该是零。
由于数据量非常大,我应该如何解决对性能影响最小的问题?由于
谢谢,但我不得不将它编辑为'res(isinf(res))= 0',因为log2(0)= -inf。 – Newbie
@Newbie确实,我的错误 –