He leído que debemos pensar en la entropía como los bits esperados que se requieren para almacenar la información proporcionada sobre una variable.
Por ejemplo:
Si el resultado de una variable es A: 0,5 y B: 0,5, entonces
podemos almacenar esta información como:
[0] <- A # Store 0 for A
[1] <- B # Store 1 for B
En cada caso se requiere 1 bit, por lo que la entropía es:
entropy = prob of A * 1 + prob of B * 1 = 1
Si el resultado de una variable es A: 1,0 y B: 0,0, entonces
[] <- We know it is A not matter what
No almacenamos ningún bit, y la entropía es 0.
Estoy más o menos de acuerdo con los ejemplos anteriores, pero ¿qué pasa con
¿Si el resultado de una variable es A: 0,9 y B: 0,1?
Si almaceno ambas variables como en el ejemplo anterior:
[0] <- A # Store 0 for A
[1] <- B # Store 1 for B
Entonces se toma 1 bit sin importar qué y termino con entropía = 1, lo cual no es correcto.
Si intento no almacenar la variable A en absoluto,
[] <- A # Store 0 for A
[1] <- B # Store 1 for B
Lo entiendo:
entropy = prob of A * 0.0 + prob of B * 1 = 0.1
Lo cual no es correcto.
La respuesta correcta es:
In [20]: from scipy.stats import entropy
In [21]: entropy([0.9, 0.1], base=2)
Out[21]: 0.46899559358928117
¿Cómo debo almacenar los bits para representar las salidas en mi último ejemplo?