** Hinweise zu diesem Artikel ** Es ist ein Amateur-Graffiti. Ich denke, es gibt viele Fehler, falsche Begriffe und keinen Beweis. Danke für Ihr Verständnis.
Ich möchte die durchschnittliche Informationsmenge der ursprünglichen Wahrscheinlichkeitsverteilung aus der Stichprobe ermitteln, die durch die kontinuierliche Wahrscheinlichkeitsverteilung generiert wurde.
Die durchschnittliche Informationsmenge einer kontinuierlichen Wahrscheinlichkeitsverteilung mit einer Wahrscheinlichkeitsdichtefunktion $ , , f , $ $ , h (X) , $ wird durch Gleichung 1 ausgedrückt, aber die Anzahl der Abtastwerte $ , N , $ ist Wenn es groß genug ist, kann es aus der Informationsmenge jeder Probe $ , , x_i , $ erhalten werden, wie in Gleichung 2 gezeigt (sollte).
\begin{align}
&h(X) = \int_{\chi}^{}f(x)\,log\,f(x)\,dx\qquad\qquad ・ ・ ・ Gleichung 1\\
&h(X) \approx \frac{1}{N}\sum_{i=1}^{N}\,-logP(\,X = x_i\,)\,\qquad ・ ・ ・ Gleichung 2
\end{align}
Um $ , h (X) $ aus Gleichung 2 zu erhalten, ist es notwendig, $ , P (, X = x_i ,) , $ für jede Probe $ , , x_i , $ zu erhalten. .. Von hier aus werde ich ein wenig erklären, wie man $ P (, X = x_i ,) , $ und $ , h (X) , $ findet.
Zunächst definieren wir einige Größen.
P(\,X=x_i\,)\, \approx \frac{n_i}{NV(r)}\qquad ・ ・ ・ Gleichung 3
Gleichung 4 wird erhalten, indem Gleichung 3 in Gleichung 2 eingesetzt wird.
\begin{align}
h(X,r) &\approx \frac{1}{N}\sum_{i=1}^{N}\,-log\frac{n_i}{NV(r)}\\
&= \,logV(r) + logN - \frac{1}{N}\sum_{i=1}^{N}\,log\,n_i\qquad ・ ・ ・ Gleichung 4
\end{align}
Um die Näherung von Gleichung 3 zu ermitteln, ist es vorzuziehen, dass $ r , $ einen möglichst kleinen Wert annehmen. Solange jedoch die Anzahl der Abtastwerte endlich ist und $ r , $ extrem klein ist, kann das Gesetz der großen Zahlen nicht erfüllt werden, und die Approximation von Gleichung 3 bricht zusammen. Daher ist es notwendig zu überlegen, wie $ r , $ richtig bestimmt werden kann, während die tatsächlichen Daten betrachtet werden. $ ^ * \ lim_ {d (x_i, , x_j) \ bis 0} P (, X = x_i ,) = lim_ {d (x_i, , x_j) \ bis 0} P (, X = x_j) Alles sollte in Ordnung sein, solange es ,) , , $ erfüllt
Generieren Sie eine Stichprobe aus einer geeigneten zweidimensionalen Gaußschen Verteilung und finden Sie $ h (X) , $.
import numpy as np
from matplotlib import pyplot as plt
def calc_d(x):
N = len(x)
x_tiled = np.tile(x, (N, 1, 1))
d = np.linalg.norm(x_tiled - x_tiled.transpose((1, 0, 2)), axis=2)
return d
#Wenden Sie die Formel für die Fläche des Kreises an, da die Anzahl der Dimensionen 2 beträgt.
def calc_v(r):
v = np.pi * np.power(r, 2)
return v
def calc_h(d, v, N, r):
n = np.sum(d <= r, axis=0)
h = np.log(v) + np.log(N) - np.sum(np.log(n)) / N
return h
#Generieren Sie Daten aus einer geeigneten zweidimensionalen Gaußschen Verteilung
data = np.random.normal(0, 1, (1000, 2))
#h beim Ändern von r(X)Berechnen
r_list = [(i + 1) * 0.01 for i in range(10000)] #Der Bereich von r wurde entsprechend festgelegt
d = calc_d(data)
N = len(data)
h_list = [calc_h(d, calc_v(r), N, r) for r in r_list]
#Zeichnen Sie ein Diagramm
#Zeichnen Sie den berechneten Wert mit einer durchgezogenen blauen Linie
plt.figure(0)
plt.plot(r_list, h_list, color='blue', linestyle='solid')
#Zeichnen Sie den aus der Stichprobenvarianz berechneten Wert mit einer blau gepunkteten Linie
Z = np.cov(data[:, 0], data[:, 1])
h_s = 0.5 * np.log(np.linalg.det(2 * np.pi * np.e * Z))
plt.plot(r_list, [h_s for _ in range(len(r_list))], color='blue', linestyle='dotted')
#Zeichnen Sie den aus der Populationsvarianz berechneten Wert mit einer orange gepunkteten Linie
h_u = np.log(2 * np.pi * np.e)
plt.plot(r_list, [h_u for _ in range(len(r_list))], color='orange', linestyle='dotted')
plt.xlim([0, 3])
plt.ylim([0, 5])
plt.show()
Bei der Ausführung wird ein solcher Graph erhalten.
Die horizontale Achse repräsentiert $ , r , $ und die vertikale Achse repräsentiert $ , h (X, r) , $. Wie theoretisch erklärt, ist $ , h (X, r) , $ umso näher am wahren Wert, je kleiner $ r , $ ist. Wenn er jedoch zu klein ist, divergiert er wiederum in Richtung negativer Unendlichkeit. Ich werde gehen. Wenn man sich das Diagramm ansieht, scheint es irgendwie gut zu sein, $ , r , $ so zu entscheiden, dass die Steigung am kleinsten ist. In Anbetracht der Tatsache, dass $ , \ frac {\ partiell} {\ partiell r} h (X, r) = 0 , $ gilt, wenn die Approximation von Gleichung 3 gilt, ist diese Bestimmungsmethode nicht so seltsam. Ich denke, aber es gibt keinen Beweis, daher ist Überbewusstsein verboten.
Recommended Posts