Erstellen Sie in Python ein Diagramm der Standardnormalverteilung

1. Was ist Standardnormalverteilung?

Normalverteilung mit Mittelwert μ = 0, Varianz σ = 1, Das heißt, es ist eine Funktion, die durch die folgende Formel ausgedrückt wird.

f(x) =  \frac{1}{ \sqrt{2 \pi } } e^{-  \frac{x^2}{2} }

2. Erstellen Sie Ihre eigene Standardnormalverteilung

Wenn Sie f (x) selbst definieren und versuchen, [-5.0, -4.999, -4.998, ..., 4.998, 4.999, 5.0] und eine Folge von ~ 5.0 ~ 5.0, Sie erhalten ein Diagramm, das üblicherweise als Normalverteilung bezeichnet wird.

norm_original.py


# coding: utf-8
import numpy as np
import math

# f(x)Schreiben Sie selbst
f = lambda x: (math.exp(-x**2/2)) / math.sqrt(2*math.pi)

#Vektor x[-5.0, ..., 5.0]Erstellt im Abschnitt von
n = np.linspace(-5.0, 5.0, 10000)

# f(x)Holen Sie sich das Ergebnis von
p = []
for i in range(len(n)):
    p.append(f(n[i]))

#Anzeige im Diagramm
plt.scatter(n, p)
plt.show()

plt_norm_orig.png

Ich habe eine schöne Glocke, aber es ist etwas ärgerlich, sie einzeln zu definieren. Vor allem braucht es Zeit, um den Mittelwert oder die Varianz zu ändern.

3. Verwenden Sie scipy

Mit dem Modul scipy.stats Im obigen Code (norm_original.py) kann die durch den Lambda-Ausdruck definierte Formel von der Funktion aufgerufen werden.

norm_usescipy.py


# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm

#Vektor x[-5.0, ..., 5.0]Erstellt im Abschnitt von
n = np.linspace(-5.0, 5.0, 10000)

#Durchschnitt 0,Bestimmen Sie die Wahrscheinlichkeit von x in einer Normalverteilung mit einer Standardabweichung von 1.
p = []
for i in range(len(n)):
    p.append(norm.pdf(x=n[i], loc=0, scale=1))

#Erstellen Sie ein Diagramm der Standardnormalverteilung, indem Sie die Merkmale der Zufallszahlenwahrscheinlichkeit in einem Streudiagramm anzeigen.
plt.scatter(n, p)
plt.show()

pdf_norm_scipy.png

Da Sie den Mittelwert und die Varianz mit dem Argument angeben können, können Sie leicht eine Normalverteilung mit einer anderen Form erhalten.

4. Betrachten Sie die gleichzeitige Entropie aus der kumulativen Verteilungsfunktion

Im vorherigen Kapitel haben wir die normalverteilte Wahrscheinlichkeitsdichtefunktion aus scipy.stats.norm.pdf verwendet. Lassen Sie uns nun ein wenig damit spielen und die kumulative Verteilungsfunktion der Normalverteilung aus scipy.stats.norm.cdf verwenden.

Kombinierte Entropie von Wikipedia (https://ja.wikipedia.org/wiki/%E7%B5%90%E5%90%88%E3%82%A8%E3%83%B3%E3%83%88% E3% 83% AD% E3% 83% 94% E3% 83% BC) Ich werde es unter Bezugnahme auf die Beschreibung schreiben.

Die simultane Entropie (kombinierte Entropie) H (X) repräsentiert die Unsicherheit des Wertes der stochastischen Variablen X. Wenn die Wahrscheinlichkeit, dass das zu X gehörende Ereignis x eintritt, p (x) ist, ist die Entropie von X.

H(X) = - \sum_{x} p_x log_2 (p_x)

Es wird vertreten durch.

Unter der Annahme, dass die Wahrscheinlichkeit auf der Standardnormalverteilung liegt, wenn die Entropie in einem Diagramm dargestellt wird,

norm_usescipy.py


---p.append(norm.pdf(x=n[i], loc=0, scale=1))
+++p.append(norm.cdf(x=n[i], loc=0, scale=1))

cdf_norm.png

Sie können H (X) so erhalten.

Recommended Posts

Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
Erstellen Sie eine Funktion in Python
Erstellen Sie einen DI-Container mit Python
Implementierung einer gemischten Normalverteilung in Python
Erstellen Sie eine Binärdatei in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Erstellen Sie eine einfache GUI-App in Python
[GPS] Erstellen Sie eine kml-Datei mit Python
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Erstellen Sie eine GIF-Datei mit Pillow in Python
Logistische Verteilung in Python
Erstellen Sie ein Python-Modul
Erstellen Sie Spatia Lite in Python
Ich möchte mit Python ein Fenster erstellen
So erstellen Sie eine JSON-Datei in Python
Diagrammzeichnung mit Python
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie in Python ein einfaches Momentum-Investmentmodell
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
Erstellen Sie in Python ein Paket mit globalen Befehlen
Erstellen Sie eine Python-Umgebung
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie in KiCad ein Rahmenantennenmuster in Python
Zeichnen Sie ein Diagramm mit Python
[Docker] Erstellen Sie in 3 Minuten eine jupyterLab (Python) -Umgebung!
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Zeichnen und verstehen Sie die multivariate Normalverteilung in Python
Erstellen Sie in Python einen Dekorator, der Argumente dynamisch akzeptiert. Erstellen Sie einen Dekorator
[Python] Erstellen Sie mit cx_Freeze eine Verteilungsdatei für das Tkinter-Programm
Erstellen Sie mit Quarry einen gefälschten Minecraft-Server in Python
Machen Sie einen Screenshot in Python
Erstellen Sie ein Wox-Plugin (Python)
Transmutationsmatrix im Python-Standard
Generieren Sie eine U-Verteilung in Python
Erstellen Sie ein Lesezeichen in Python
Erstellen Sie ein Python-Numpy-Array
Zeichne ein Herz in Python
Erstellen Sie ein Verzeichnis mit Python
Ändern Sie das Standardausgabeziel in eine Datei in Python
Erstellen Sie ein untergeordnetes Konto für die Verbindung mit Stripe in Python
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Eine Standardmethode zum Entwickeln und Verteilen von Paketen in Python
Erstellen Sie den Code, der in Python "A und vorgeben B" ausgibt
Zeichnen wir ein Diagramm der Poisson-Verteilung und der kumulativen Poisson-Verteilung in Python bzw. Java.
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Erstellen Sie mit Flask einen CSV-Reader