Saya menerapkan fungsi berikut untuk menghitung entropi:
from math import log
def calc_entropy(probs):
my_sum = 0
for p in probs:
if p > 0:
my_sum += p * log(p, 2)
return - my_sum
Hasil:
>>> calc_entropy([1/7.0, 1/7.0, 5/7.0])
1.1488348542809168
>>> from scipy.stats import entropy # using a built-in package
# give the same answer
>>> entropy([1/7.0, 1/7.0, 5/7.0], base=2)
1.1488348542809166
Pemahaman saya adalah bahwa entropi adalah antara 0 dan 1, 0 artinya sangat pasti, dan 1 artinya sangat tidak pasti. Mengapa saya mendapatkan ukuran entropi lebih dari 1?
Saya tahu bahwa jika saya meningkatkan ukuran basis log, ukuran entropi akan lebih kecil, tapi saya pikir basis 2 adalah standar, jadi saya tidak berpikir itu masalahnya.
Saya pasti kehilangan sesuatu yang jelas, tetapi apa?