>>789
初めて聞く言葉なので興味が湧いて
https://logics-of-blue.com/information-theory-basic/
を読んでみた。

# https://logics-of-blue.com/information-theory-basic/
"予想がつかない→不確実性(情報エントロピー)が大きい→平均情報量も大きい"
ent <- function(x){ # 情報エントロピー(平均情報量)
x=x/sum(x)
entropy=0
for(i in x) entropy=entropy+i*(-log2(i))
return(entropy)
}
ent(c(30/50,20/50)) # gender
ent(c((18+2)/50,(50-18-2)/50)) # glass

"各々の確率分布の情報量の差分の期待値をとります
確率分布が異なっていれば、情報量があるとみなすのが、
カルバック・ライブラーの情報量です。"
rel_ent <- function(P,Q){ # 相対エントロピー
n=length(P)
if(n!=length(Q)) return(NULL)
P=P/sum(P)
Q=Q/sum(Q)
re=numeric(n)
for(i in 1:n) re[i] = Q[i]*(-log2(P[i])-(-log2(Q[i])))
return(sum(re))
}
#
"相互情報量は不確実性(情報エントロピー)の減少量とみなすことができます"
"
<問題>
50人の生徒からなるクラスがある。
そのうち30人は男子、 20人は女子であり、
男子のうち18人、女子のうち2人は眼鏡をかけている仮定とする。
"
30/50*ent(c(18/30,12/30)) + 20/50*ent(c(2/20,18/20))

> 30/50*ent(c(18/30,12/30)) + 20/50*ent(c(2/20,18/20))
[1] 0.7701686