मुझे 1 से अधिक एन्ट्रापी की जानकारी क्यों मिल रही है?


11

एन्ट्रापी की गणना करने के लिए मैंने निम्नलिखित फ़ंक्शन लागू किया:

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 शैनन एन्ट्रापी, और प्राकृतिक लॉग सांख्यिकीय यांत्रिकी एन्ट्रापी नहीं है?
एलेक्सिस

@ एलेक्सिस, लेकिन 0 और 1 के बीच शैनन की एन्ट्रापी रेंज नहीं है?
अकवल

1
नहीं: शैनन एन्ट्रापी गैर-नकारात्मक है।
एलेक्सिस

2
ऐसा लगता है कि एन्ट्रापी 1 से अधिक होने के साथ कुछ भी गलत नहीं है यदि मेरे पास दो से अधिक घटनाएं हैं, और एन्ट्रॉपी का मूल्य केवल विशेष मामले में 0 और 1 के बीच है, जहां मेरी घटनाएं बाइनरी हैं (मेरे पास दो इवेंट हैं)।
अकलव

जवाबों:


17

Entropy है नहीं के रूप में ही संभावना

एन्ट्रापी एक यादृच्छिक चर की "सूचना" या "अनिश्चितता" को मापता है। जब आप बेस 2 का उपयोग कर रहे हैं, तो इसे बिट्स में मापा जाता है; और एक चर में एक से अधिक जानकारी हो सकती है।

इस उदाहरण में, एक नमूने में "1.15 बिट्स" जानकारी शामिल है। दूसरे शब्दों में, यदि आप नमूनों की एक श्रृंखला को पूरी तरह से संपीड़ित करने में सक्षम थे, तो आपको औसतन प्रति बिट कई बिट्स की आवश्यकता होगी।


धन्यवाद। मुझे लगता है कि मैं इसे प्राप्त करता हूं, लेकिन मैं यह सुनिश्चित करना चाहता हूं। मैं निम्नलिखित कथन सही हूँ? यदि मेरे पास केवल दो परिणाम हैं, तो मैं प्राप्त कर सकने वाली अधिकांश जानकारी 1 बिट है, लेकिन यदि मेरे पास 2 से अधिक परिणाम हैं, तो मैं 1 बिट से अधिक जानकारी प्राप्त कर सकता हूं।
अकवाल

हाँ। (उदाहरण के लिए, चार समान रूप से वितरित परिणामों पर विचार करें, जो प्रति नमूने दो उचित सिक्का टॉस द्वारा उत्पन्न किया जा सकता है ।)
सीएल।

इसे जोड़ने के लिए, बाइनरी वर्गीकरण समस्याओं के लिए 0-1 से एन्ट्रापी पर्वतमाला और 0 से लॉग बेस 2 k, जहां k आपके पास कक्षाओं की संख्या है।
माइकलएममेस्सी

13

एन्ट्रापी का अधिकतम मूल्य है logk, कहाँ पे kआपके द्वारा उपयोग की जा रही श्रेणियों की संख्या है। इसका संख्यात्मक मान स्वाभाविक रूप से आपके द्वारा उपयोग किए जा रहे लघुगणकों के आधार पर निर्भर करेगा।

उदाहरण के रूप में आधार 2 लघुगणक का उपयोग करना, जैसा कि प्रश्न में है: log21 है 0 तथा log22 है 1, इसलिए एक परिणाम से अधिक है 1 श्रेणियों की संख्या होने पर निश्चित रूप से गलत है 1 या 2। से अधिक का मान1 इससे अधिक होने पर गलत होगा log2k

इसके मद्देनजर एन्ट्रापी टू स्केल टू काफ़ी सामान्य है logk, ताकि परिणाम फिर बीच में पड़ें 0 तथा 1,


उस के बारे में पता नहीं था, धन्यवाद। तो मूल रूप से लघुगणक का आधार नमूना की लंबाई के समान है, और अधिक नहीं?
Fierce82

2
नमूने की लंबाई भी सारहीन है। यह आपके पास कितनी श्रेणियां हैं।
निक कॉक्स

बस स्पष्ट करने के लिए, क्या यह संभव श्रेणियों की संख्या है, या आपके लिए एन्ट्रापी की गणना करने वाली श्रेणियों की संख्या है? जैसे। मेरे पास 10 संभावित श्रेणियां हैं, लेकिन सिस्टम में 2 श्रेणियों का प्रतिनिधित्व करने वाले 3 नमूने हैं जिनके लिए मैं एन्ट्रापी की गणना कर रहा हूं। इस मामले में k 2 है?
eljusticiero67

व्यवहार में नहीं आने वाले श्रेणियों ने प्रायिकता शून्य को देखा है और एन्ट्रापी परिणाम को प्रभावित नहीं करते हैं। यह एक मजबूत सम्मेलन है, जिसे अधिक कठोरता से उचित ठहराया जा सकता है-0लॉग0को शून्य के रूप में लिया जाना है (यहाँ लघुगणक अपरिपक्व होने का आधार है)।
निक कॉक्स

-2

इसे आज़माएं (आधार पर ध्यान दें) e):

from math import log

def calc_entropy(probs):
    my_sum = 0
    for p in probs:
        if p > 0:
            my_sum += p * log(p)

    return - my_sum

देते हुए:

>>> calc_entropy([1/7.0, 1/7.0, 5/7.0])
0.796311640173813

मुझे पता है कि मैं ऐसा कर सकता हूं, लेकिन मुझे इस बात का आभास था कि लॉग बेस 2 का उपयोग करने पर भी 0 और 1. के बीच एन्ट्रापी मूल्य प्राप्त होना चाहिए। क्या लॉग 2 का उपयोग केवल तब किया जा सकता है जब मेरे पास दो संभावनाएं हों?
अकवाल

का उपयोग करते हुए लॉग2 उपायों की श्रृंखला की अनिश्चितता को चिह्नित करने के लिए आवश्यक बिट्स की संख्या को मापता है पी-values। देखें xkcd.com/936 और en.wikipedia.org/wiki/Entropy_%28information_theory%29
एलेक्सिस

यह उत्तर बताता है कि नट्स में व्यक्त एंट्रॉपी अधिक नहीं होनी चाहिए 1, लेकिन मुझे संदेह है कि आपके द्वारा अवगत कराने के लिए इरादा जानकारी है, क्योंकि यह सिर्फ सच नहीं है।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.