ฉันใช้ฟังก์ชันต่อไปนี้เพื่อคำนวณเอนโทรปี:
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 เป็นมาตรฐานดังนั้นฉันจึงไม่คิดว่านั่นเป็นปัญหา
ฉันต้องคิดถึงบางสิ่งที่ชัดเจน แต่อะไรนะ