एन्ट्रापी की गणना करने के लिए मैंने निम्नलिखित फ़ंक्शन लागू किया:
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 मानक था, इसलिए मुझे नहीं लगता कि यह समस्या है।
मुझे कुछ स्पष्ट याद आ रहा है, लेकिन क्या?