엔트로피를 계산하기 위해 다음 기능을 구현했습니다.
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
결과:
>>> 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
엔트로피는 0과 1 사이이며 0은 매우 확실하고 1은 매우 불확실하다는 것을 이해했습니다. 엔트로피 측정 값이 1보다 큰 이유는 무엇입니까?
로그베이스의 크기를 늘리면 엔트로피 측정 값이 작아 지지만베이스 2가 표준이라고 생각하므로 이것이 문제라고 생각하지 않습니다.
나는 명백한 것을 놓치고 있어야하지만, 무엇?
기지가 엔트로피의 종류에 의존하지 않습니까? 2 Shannon Shannon 엔트로피와 자연 로그 통계 역학 엔트로피가 아닌가?
—
Alexis
@Alexis, 그러나 Shannons의 엔트로피 범위는 0과 1 사이입니까?
—
Akavall
아니요 : Shannon 엔트로피는 음이 아닙니다.
—
Alexis
엔트로피가 2보다 많은 이벤트가있는 경우 엔트로피가 1보다 크면 아무런 문제가 없으며 엔트로피의 값은 이벤트가 이진 인 두 경우 (2 개의 이벤트가있는 경우)에만 0과 1 사이입니다.
—
Akavall