Ich bin zwei Jahre zu spät in der Beantwortung. Bitte bedenken Sie dies trotz nur weniger Stimmen.
Kurze Antwort: Verwenden Sie meine ersten und dritten fettgedruckten Gleichungen unten, um herauszufinden, woran die meisten Leute denken, wenn sie "Entropie" einer Datei in Bits sagen. Verwenden Sie nur die 1. Gleichung, wenn Sie Shannons H-Entropie wollen, die tatsächlich Entropie / Symbol ist, wie er 13 Mal in seiner Arbeit angegeben hat, die den meisten Menschen nicht bekannt ist. Einige Online-Entropie-Rechner verwenden diesen, aber Shannons H ist "spezifische Entropie", nicht "totale Entropie", was so viel Verwirrung verursacht hat. Verwenden Sie die 1. und 2. Gleichung, wenn Sie eine Antwort zwischen 0 und 1 wünschen, bei der es sich um normalisierte Entropie / Symbol handelt (es handelt sich nicht um Bits / Symbol, sondern um ein echtes statistisches Maß für die "entropische Natur" der Daten, indem Sie die Daten ihre eigene Protokollbasis auswählen lassen anstatt willkürlich 2, e oder 10 zuzuweisen).
Es gibt 4 Arten der Entropie von Dateien (Daten) von N Symbolen mit n eindeutigen Arten von Symbolen. Beachten Sie jedoch, dass Sie durch Kenntnis des Inhalts einer Datei den Status kennen, in dem sie sich befindet, und daher S = 0. Um genau zu sein, wenn Sie eine Quelle haben, die viele Daten generiert, auf die Sie Zugriff haben, können Sie die erwartete zukünftige Entropie / den erwarteten zukünftigen Charakter dieser Quelle berechnen. Wenn Sie Folgendes für eine Datei verwenden, ist es genauer zu sagen, dass die erwartete Entropie anderer Dateien aus dieser Quelle geschätzt wird.
- Shannon (spezifisch) Entropie H = -1 * Summe (count_i / N * log (count_i / N))
wobei count_i die Häufigkeit ist, mit der das Symbol i in N aufgetreten ist.
Einheiten sind Bits / Symbole, wenn log Basis 2 ist, nats / symbol wenn natürliches log.
- Normalisierte spezifische Entropie: H / log (n)
Einheiten sind Entropie / Symbol. Bereiche von 0 bis 1. 1 bedeutet, dass jedes Symbol gleich häufig vorkommt und in der Nähe von 0 alle Symbole außer 1 nur einmal vorkamen und der Rest einer sehr langen Datei das andere Symbol war. Das Protokoll befindet sich in derselben Basis wie das H.
- Absolute Entropie S = N * H
Einheiten sind Bits, wenn log Basis 2 ist, nats, wenn ln ()).
- Normalisierte absolute Entropie S = N * H / log (n) Die
Einheit ist "Entropie" und variiert von 0 bis N. Das log befindet sich auf derselben Basis wie das H.
Obwohl die letzte die wahrste "Entropie" ist, ist die erste (Shannon-Entropie H) das, was alle Bücher "Entropie" ohne (die erforderliche IMHO) Qualifikation nennen. Die meisten klären nicht (wie Shannon), dass es sich um Bits / Symbol oder Entropie pro Symbol handelt. H "Entropie" zu nennen, spricht zu locker.
Für Dateien mit gleicher Häufigkeit jedes Symbols: S = N * H = N. Dies ist bei den meisten großen Bitdateien der Fall. Entropy führt keine Komprimierung der Daten durch und kennt daher keine Muster. Daher hat 000000111111 das gleiche H und S wie 010111101000 (6 1 und 6 0 in beiden Fällen).
Wie andere bereits gesagt haben, liefert die Verwendung einer Standardkomprimierungsroutine wie gzip und das Teilen vor und nach ein besseres Maß für die Menge der bereits vorhandenen "Reihenfolge" in der Datei. Dies ist jedoch voreingenommen gegenüber Daten, die besser zum Komprimierungsschema passen. Es gibt keinen perfekt optimierten Allzweckkompressor, mit dem wir eine absolute "Reihenfolge" definieren können.
Eine andere zu berücksichtigende Sache: H ändert sich, wenn Sie ändern, wie Sie die Daten ausdrücken. H ist unterschiedlich, wenn Sie verschiedene Gruppierungen von Bits auswählen (Bits, Halbbytes, Bytes oder Hex). Sie dividieren also durch log (n), wobei n die Anzahl der eindeutigen Symbole in den Daten ist (2 für binär, 256 für Bytes) und H im Bereich von 0 bis 1 liegt (dies ist eine normalisierte intensive Shannon-Entropie in Entropieeinheiten pro Symbol). . Aber technisch gesehen ist n = 100, nicht 256, wenn nur 100 der 256 Bytetypen auftreten.
H ist eine "intensive" Entropie, dh es ist pro Symbol analog zur spezifischen Entropie in der Physik, die Entropie pro kg oder pro Mol ist. Regelmäßige "umfangreiche" Entropie einer Datei analog zu Physik ist S = N * H, wobei N.ist die Anzahl der Symbole in der Datei. H wäre genau analog zu einem Teil eines idealen Gasvolumens. Informationsentropie kann nicht einfach in einem tieferen Sinne exakt gleich physikalischer Entropie gemacht werden, da physikalische Entropie "geordnete" sowie ungeordnete Anordnungen zulässt: Physikalische Entropie ist mehr als eine vollständig zufällige Entropie (wie eine komprimierte Datei). Ein Aspekt des Unterschiedlichen Für ein ideales Gas gibt es einen zusätzlichen 5/2-Faktor, der dies berücksichtigt: S = k * N * (H + 5/2) wobei H = mögliche Quantenzustände pro Molekül = (xp) ^ 3 / hbar * 2 * sigma ^ 2 wobei x = Breite der Box, p = gesamter ungerichteter Impuls im System (berechnet aus kinetischer Energie und Masse pro Molekül) und Sigma = 0,341 gemäß dem Unsicherheitsprinzip, das nur die Anzahl von angibt mögliche Zustände innerhalb 1 std dev.
Ein wenig Mathematik ergibt eine kürzere Form der normalisierten umfangreichen Entropie für eine Datei:
S = N * H / log (n) = Summe (count_i * log (N / count_i)) / log (n)
Einheiten davon sind "Entropie" (was nicht wirklich eine Einheit ist). Es wird normalisiert, um ein besseres universelles Maß als die "Entropie" -Einheiten von N * H zu sein. Es sollte aber auch nicht ohne Klärung als "Entropie" bezeichnet werden, da die normale historische Konvention darin besteht, H fälschlicherweise "Entropie" zu nennen (was im Gegensatz dazu steht die in Shannons Text gemachten Klarstellungen).