Tại sao tôi nhận được thông tin entropy lớn hơn 1?


11

Tôi đã thực hiện các chức năng sau để tính toán entropy:

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

Kết quả:

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

Tôi hiểu rằng entropy nằm trong khoảng từ 0 đến 1, 0 có nghĩa là rất chắc chắn và 1 có nghĩa là rất không chắc chắn. Tại sao tôi có số đo entropy lớn hơn 1?

Tôi biết rằng nếu tôi tăng kích thước của cơ sở nhật ký, số đo entropy sẽ nhỏ hơn, nhưng tôi nghĩ cơ sở 2 là tiêu chuẩn, vì vậy tôi không nghĩ đó là vấn đề.

Tôi phải thiếu một cái gì đó rõ ràng, nhưng những gì?


Không phải cơ sở phụ thuộc vào loại entropy? Không phải là cơ sở 2 entropy Shannon, và entropy cơ học thống kê tự nhiên?
Alexis

@Alexis, nhưng phạm vi entropy của Shannons trong khoảng từ 0 đến 1?
Akavall

1
Không: entropy của Shannon là không âm.
Alexis

2
Dường như không có gì sai khi entropy lớn hơn 1 nếu tôi có nhiều hơn hai sự kiện và giá trị của entropy chỉ nằm trong khoảng từ 0 đến 1 trong trường hợp đặc biệt, trong đó các sự kiện của tôi là nhị phân (tôi có hai sự kiện).
Akavall

Câu trả lời:


17

Entropykhông giống như khả năng .

Entropy đo lường "thông tin" hoặc "độ không đảm bảo" của một biến ngẫu nhiên. Khi bạn đang sử dụng cơ sở 2, nó được đo bằng bit; và có thể có nhiều hơn một bit thông tin trong một biến.

Trong ví dụ này, một mẫu "chứa" khoảng 1,15 bit thông tin. Nói cách khác, nếu bạn có thể nén một loạt các mẫu một cách hoàn hảo, trung bình bạn sẽ cần nhiều bit cho mỗi mẫu.


Cảm ơn bạn. Tôi nghĩ rằng tôi nhận được nó, nhưng tôi muốn chắc chắn. Tôi tuyên bố sau phải không? Nếu tôi chỉ có hai kết quả, thì hầu hết thông tin tôi có thể nhận được là 1 bit, nhưng nếu tôi có nhiều hơn 2 kết quả thì tôi có thể nhận được nhiều hơn 1 bit thông tin.
Akavall

Đúng. (Ví dụ, hãy xem xét bốn kết quả được phân phối đồng đều, có thể được tạo ra bởi hai lần tung đồng xu công bằng cho mỗi mẫu.)
CL.

Để thêm vào điều này, entropy nằm trong khoảng từ 0-1 cho các vấn đề phân loại nhị phân và 0 để ghi nhật ký cơ sở 2 k, trong đó k là số lớp bạn có.
MichaelMMeskhi

13

đăng nhậpkk

đăng nhập210đăng nhập2211121đăng nhập2k

đăng nhậpk01


không biết về điều đó, cảm ơn. Vì vậy, về cơ bản cơ sở của logarit sẽ giống như chiều dài của mẫu, và không nhiều hơn?
Fierce82

2
Chiều dài của mẫu là phi vật chất quá. Đó là bao nhiêu danh mục bạn có.
Nick Cox

chỉ cần làm rõ, đó là k số lượng danh mục có thể, hoặc số lượng danh mục bạn đang tính toán entropy cho? ví dụ. Tôi có 10 loại có thể, nhưng có 3 mẫu đại diện cho 2 loại trong hệ thống tôi đang tính toán entropy cho. là k trong trường hợp 2 này?
eljusticiero67

-0đăng nhập0

-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

Tặng:

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

Tôi biết rằng tôi có thể làm điều đó, nhưng tôi có ấn tượng rằng sử dụng log cơ sở 2 cũng sẽ mang lại giá trị entropy trong khoảng từ 0 đến 1. Chỉ có thể sử dụng cơ sở log 2 khi tôi có hai xác suất?
Akavall

đăng nhập2p

1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.