Neden 1'den büyük bilgi entropisi alıyorum?


11

Entropiyi hesaplamak için aşağıdaki işlevi uyguladım:

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

Sonuç:

>>> 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

Anladığım kadarıyla entropi 0 ile 1 arasında, 0 çok kesin ve 1 çok belirsiz. Neden 1'den büyük entropi ölçümü alıyorum?

Günlük tabanının boyutunu artırırsam entropi ölçüsü daha küçük olur, ancak taban 2'nin standart olduğunu düşündüm, bu yüzden sorun olduğunu düşünmüyorum.

Açık bir şeyi özlemeliyim, ama ne?


Baz entropinin türüne bağlı değil mi? Temel 2 Shannon entropisi ve doğal log istatistiksel mekanik entropisi değil mi?
Alexis

@Alexis, ama Shannons'un entropisi 0 ile 1 arasında değişmiyor mu?
Akavall

1
Hayır: Shannon entropisi negatif değildir.
Alexis

2
İki olaydan daha fazla olayım varsa entropinin 1'den büyük olmasıyla ilgili yanlış bir şey yoktur ve entropinin değeri sadece özel durumlarda 0 ve 1 arasındadır, olaylarım ikili (iki olayım var).
Akavall

Yanıtlar:


17

Entropi olduğu değil aynı olasılık .

Entropi rastgele bir değişkenin "bilgisini" veya "belirsizliğini" ölçer. Taban 2'yi kullanırken, bit cinsinden ölçülür; ve bir değişkente birden fazla bilgi biti olabilir.

Bu örnekte, bir örnek yaklaşık 1.15 bit bilgi içerir. Başka bir deyişle, bir dizi numuneyi mükemmel bir şekilde sıkıştırabilseydiniz, ortalama olarak, örnek başına çok sayıda bite ihtiyacınız olurdu.


Teşekkür ederim. Sanırım anlıyorum, ama emin olmak istiyorum. Ben aşağıdaki ifadeyi değil mi? Yalnızca iki sonucum varsa, elde edebileceğim bilgilerin çoğu 1 bit, ancak 2'den fazla sonucum varsa, 1 bitten fazla bilgi elde edebileceğimden daha fazla.
Akavall

Evet. (Örneğin, örnek başına iki adil para birimi ile elde edilebilen, muntazam dağıtılmış dört sonucu düşünün .)
CL.

Buna eklemek için, entropi ikili sınıflandırma problemleri için 0-1 ile taban 2 k log arasında değişir, burada k sahip olduğunuz sınıf sayısıdır.
MichaelMMeskhi

13

Entropinin maksimum değeri günlükk, nerede kkullandığınız kategori sayısıdır. Sayısal değeri doğal olarak kullandığınız logaritmaların tabanına bağlı olacaktır.

Soru 2'deki gibi temel 2 logaritmalarını örnek olarak kullanmak: günlük21 dır-dir 0 ve günlük22 dır-dir 1, yani daha büyük bir sonuç 1 kategori sayısı kesinlikle yanlışsa 1 veya 2. Değerinden büyük bir değer1 aşarsa yanlış olur günlük2k.

Bu bağlamda entropinin ölçeklendirilmesi oldukça yaygındır. günlükk, böylece sonuçlar daha sonra 0 ve 1,


bunu bilmiyordum, teşekkürler. Yani temelde logaritmanın tabanı numunenin uzunluğuyla aynı olmalı ve daha fazla değil mi?
Fierce82

2
Numunenin uzunluğu da önemsizdir. Kaç kategoriniz var.
Nick Cox

sadece açıklığa kavuşturmak için, k olası kategorilerin sayısı mı yoksa entropiyi hesapladığınız kategori sayısı mı? Örneğin. 10 olası kategoriler var, ama entropi hesaplıyorum sistemde 2 kategoriyi temsil eden 3 örnek vardır. bu durumda k 2'dir?
eljusticiero67

Uygulamada oluşmayan kategoriler olasılığı sıfır olarak gözlemledi ve entropi sonucunu etkilemedi. Daha titizlikle gerekçelendirilebilecek güçlü bir sözleşme,-0günlük0sıfır olarak alınmalıdır (burada logaritmaların temeli önemsizdir).
Nick Cox

-2

Bunu deneyin (üsse dikkat edin) 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

Giving:

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

Bunu yapabileceğimi biliyorum, ancak log tabanı 2 kullanmanın da 0 ile 1 arasında entropi değeri vermesi gerektiği izlenimindeydim. Log tabanı 2 sadece iki olasılığım olduğunda kullanılabilir mi?
Akavall

kullanma günlük2 serisinin belirsizliğini karakterize etmek için gerekli bit sayısını ölçer p-değerleri. Bkz. Xkcd.com/936 ve en.wikipedia.org/wiki/Entropy_%28information_theory%29
Alexis

Bu cevap nats ile ifade edilen entropinin 1, ancak iletmek istediğiniz bilginin bu olduğundan şüpheliyim, çünkü bu doğru değil.
whuber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.