[PYTHON] Schreiben Sie eine Kerneldichtefunktion

1 Was Sie tun möchten

Generieren Sie mit Jupyter eine Kerneldichtefunktion und visualisieren Sie diese. Klicken Sie hier, um eine Beschreibung der Kerneldichtefunktion zu erhalten [https://www.ie-kau.net/entry/kernel_density_est].

2 Code

Die Form der Kerneldichtefunktion scheint sich zwischen der Verwendung der Funktion gaussian_kde und der Verwendung der Funktion seabon kdeplot geringfügig zu unterscheiden.

/home/sampletest/sample.py


from numpy.random import randn
import seaborn as sns
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
sns.set_style("whitegrid")
from scipy.integrate import cumtrapz #Bibliothek zur Integration von PDF in alle Abschnitte



#Geben Sie einen Datensatz an und generieren Sie eine Kerneldichtefunktion. Es berechnet auch die kumulative Häufigkeit der Kerneldichtefunktion und
#Kumulativer Wert gesunken,Gibt den X-Wert zurück, der aktiv ist.

def pdf_kernel(dataset,down,up):

    d_max=np.max(dataset)+0.2
    d_min=np.min(dataset)-0.2

    d_kernel = gaussian_kde(dataset) #Generieren Sie eine Kernel-Dichteschätzungsfunktion. Die Bandbreite wird automatisch berechnet.

    #Geben Sie den zu integrierenden Bereich an: d_min bis d_Integrieren Sie in den Bereich von max.
    d_xs = np.linspace(d_min, d_max, num=1000)

    #Eingabe der Kerneldichtefunktion(d_xs)Und Ausgabe(d_ys)Ist definiert.
    d_ys = d_kernel(d_xs)

    #Kumulative Verteilungsfunktion d_Integrieren Sie in den Bereich von xs.
    d_integral = cumtrapz(d_ys, d_xs)

    #cdf(x) = 0.Finde x das ist 03. d_0 im integralen Array.Die Zahl, die 03 am nächsten kommt, wird im Array berechnet.
    idx_d= np.searchsorted(d_integral, down)

    #cdf(x) = 0.Finden Sie x, das 9 ist. d_0 im integralen Array.Die Zahl, die 9 am nächsten kommt, wird als Zahl im Array berechnet.
    idx_u = np.searchsorted(d_integral, up)


    #Das Diagramm wird angezeigt.
    ax=plt.plot(d_xs, d_ys, label="KDE")
    plt.xlim(d_min-1, d_max+1) 

    #Kumulativer Wert 5%Bereich anzeigen von
    plt.fill_between(d_xs[:idx_d], 0, d_ys[:idx_d], facecolor="r", alpha=0.5)


    #Kumulativer Wert 90%Bereich anzeigen von
    plt.fill_between(d_xs[idx_u:], 0, d_ys[idx_u:], facecolor="r", alpha=0.5)

    #Die Legende wird oben rechts angezeigt
    plt.legend(loc="upper right")

    pdf_val={"down":d_xs[idx_d],"up":d_xs[idx_u]}
    return pdf_val



#Das Hauptprogramm startet von folgendem
dataset = randn(50) #Generieren Sie 50 Zufallszahlen, die einer gleichmäßigen Verteilung folgen
down=0.05 
up=0.9


#Geben Sie einen Datensatz an und generieren Sie eine Kerneldichtefunktion. Es berechnet auch die kumulative Häufigkeit der Kerneldichtefunktion und
#Kumulativer Wert gesunken,Gibt den X-Wert zurück, der aktiv ist.
val=pdf_kernel(dataset,down,up) 

#Schreiben Sie eine Kerneldichtefunktion mit seaborn.
sns.kdeplot(dataset,label="from seaborn")

Ausführungsergebnis </ b> #Der Bereich des kumulativen Werts 0 bis unten (5% im abgebildeten Beispiel) und der Bereich des kumulativen Werts oben (90% im dargestellten Beispiel) bis 100% werden angezeigt. 69.JPG

Recommended Posts

Schreiben Sie eine Kerneldichtefunktion
[Go] So schreiben oder rufen Sie eine Funktion auf
GPy-Kernelfunktionsvergleich
Unterscheiden Sie eine Funktion mit zwei Variablen
Machen Sie einen Funktionsdekorateur
So schätzen Sie die Kerneldichte
Erstellen Sie eine Funktion in Python
Hinweis zur Kernel-Kompilierung
So rufen Sie eine Funktion auf
Schätzung der Kerneldichte in Python
Dateien lesen und schreiben
Versuchen Sie, eine logistische Funktion zu zeichnen
Dateien schreiben und lesen
Was ist eine Rückruffunktion?
Schreiben Sie eine Dichotomie in Python
Schreiben Sie einen tabellengesteuerten Test in C.
Eine Funktion, die einen zufälligen Namen zurückgibt
Schreiben Sie die AWS Lambda-Funktion in Python
Schreiben Sie die Standardausgabe in eine Datei
Schreiben Sie A * (A-Stern) -Algorithmen in Python
So erstellen Sie eine rekursive Funktion
Schreiben Sie ein Restnetzwerk mit TFLearn
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Python - Dynamische Aufruffunktion von String
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Schreiben Sie einen supereinfachen TCP-Server
Schreiben Sie ein gestapeltes Histogramm mit matplotlib
Schreiben Sie ein Batch-Skript mit Python3.5 ~
Verwenden Sie einen benutzerdefinierten Kernel mit WSL2
Effektives Python-Memo Element 4 Schreiben Sie eine Hilfsfunktion anstelle eines komplizierten Ausdrucks
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion