Zuletzt aktualisiert am 24. Juli 2020
Die Wahrscheinlichkeitsdichte ist die Beziehung zwischen Beobachtungen und deren Wahrscheinlichkeit.
Einige Ergebnisse einer Zufallsvariablen weisen eine niedrige Wahrscheinlichkeitsdichte auf, andere Ergebnisse weisen eine hohe Wahrscheinlichkeitsdichte auf.
Die Gesamtform der Wahrscheinlichkeitsdichte wird als Wahrscheinlichkeit bezeichnet Verteilung und die Berechnung der Wahrscheinlichkeiten für bestimmte Ergebnisse einer Zufallsvariablen wird durch eine Wahrscheinlichkeitsdichtefunktion, kurz PDF, durchgeführt.
Es ist nützlich, die Wahrscheinlichkeitsdichtefunktion für eine Stichprobe von Daten der Reihe nach zu kennen zu wissen, ob eine bestimmte Beobachtung unwahrscheinlich oder so unwahrscheinlich ist, dass sie als Ausreißer oder Anomalie angesehen wird, und ob sie entfernt werden sollte. Es ist auch hilfreich, geeignete Lernmethoden auszuwählen, bei denen Eingabedaten eine bestimmte Wahrscheinlichkeitsverteilung aufweisen müssen.
Es ist unwahrscheinlich, dass die Wahrscheinlichkeitsdichtefunktion für eine zufällige Datenstichprobe bekannt ist. Daher muss die Wahrscheinlichkeitsdichte mithilfe eines als Wahrscheinlichkeitsdichteschätzung bezeichneten Prozesses angenähert werden.
In diesem Lernprogramm finden Sie eine sanfte Einführung in die Wahrscheinlichkeitsdichteschätzung.
Nach Abschluss dieses Vorgangs Im Tutorial wissen Sie:
- Histogrammdiagramme bieten eine schnelle und zuverlässige Möglichkeit, die Wahrscheinlichkeitsdichte einer Datenprobe zu visualisieren.
- Bei der parametrischen Wahrscheinlichkeitsdichteschätzung wird eine gemeinsame Verteilung ausgewählt und Schätzen der Parameter für die Dichtefunktion aus einer Datenprobe.
- Bei der nichtparametrischen Wahrscheinlichkeitsdichteschätzung wird eine Technik verwendet, um ein Modell an die willkürliche Verteilung der Daten anzupassen, wie beispielsweise die Kerneldichteschätzung.
/ ul>
Starten Sie Ihr Projekt mit meinem neuen Buch Wahrscheinlichkeit für maschinelles Lernen, einschließlich schrittweiser Tutorials und der Python-Quellcodedateien für alle Beispiele.
Los geht’s.
Eine sanfte Einführung n zur Schätzung der Wahrscheinlichkeitsdichte
Foto von Alistair Paterson, einige Rechte vorbehalten.
Tutorial-Übersicht
Dieses Tutorial ist in vier Teile unterteilt. Dies sind:
- Wahrscheinlichkeitsdichte
- Dichte mit einem Histogramm zusammenfassen
- Schätzung der parametrischen Dichte
- Schätzung der nichtparametrischen Dichte
Wahrscheinlichkeitsdichte
Eine Zufallsvariable x hat eine Wahrscheinlichkeitsverteilung p (x).
Die Beziehung zwischen den Ergebnissen einer Zufallsvariablen und ihrer Wahrscheinlichkeit ist wird als Wahrscheinlichkeitsdichte oder einfach als „Dichte“ bezeichnet.
Wenn eine Zufallsvariable stetig ist, kann die Wahrscheinlichkeit über die Wahrscheinlichkeitsdichtefunktion oder kurz PDF berechnet werden. Die Form der Wahrscheinlichkeitsdichte Die Funktion für eine Zufallsvariable in der gesamten Domäne wird als Wahrscheinlichkeitsverteilung bezeichnet, und allgemeine Wahrscheinlichkeitsverteilungen haben Namen wie einheitlich, normal, exponentiell usw.
Bei einer Zufallsvariablen sind wir interessiert die Dichte seiner Wahrscheinlichkeiten.
Wenn beispielsweise eine Zufallsstichprobe einer Variablen gegeben ist, möchten wir möglicherweise Dinge wie die Form der Wahrscheinlichkeitsverteilung wissen bution, der wahrscheinlichste Wert, die Streuung von Werten und andere Eigenschaften.
Die Kenntnis der Wahrscheinlichkeitsverteilung für eine Zufallsvariable kann helfen, Momente der Verteilung wie Mittelwert und Varianz zu berechnen, kann es aber auch sein nützlich für andere allgemeinere Überlegungen, wie das Bestimmen, ob eine Beobachtung unwahrscheinlich oder sehr unwahrscheinlich ist und ein Ausreißer oder eine Anomalie sein könnte.
Das Problem ist, dass wir die Wahrscheinlichkeitsverteilung für eine Zufallsvariable möglicherweise nicht kennen. Wir kennen die Verteilung selten, da wir nicht auf alle möglichen Ergebnisse für eine Zufallsvariable zugreifen können. Tatsächlich haben wir nur Zugang zu einer Stichprobe von Beobachtungen. Als solches müssen wir eine Wahrscheinlichkeitsverteilung auswählen.
Dieses Problem wird als Wahrscheinlichkeitsdichteschätzung oder einfach als „Dichteschätzung“ bezeichnet, da wir die Beobachtungen in einer Zufallsstichprobe verwenden, um die allgemeine Dichte von zu schätzen Wahrscheinlichkeiten, die über die Stichprobe der verfügbaren Daten hinausgehen.
Der Prozess der Dichteschätzung für eine Zufallsvariable umfasst einige Schritte.
Der erste Schritt besteht darin, die Dichte von zu überprüfen Beobachtungen in der Zufallsstichprobe mit einem einfachen Histogramm. Aus dem Histogramm können wir möglicherweise eine gemeinsame und gut verstandene Wahrscheinlichkeitsverteilung identifizieren, die verwendet werden kann, z. B. eine Normalverteilung. Wenn nicht, müssen wir möglicherweise ein Modell anpassen Schätzen Sie die Verteilung.
In den folgenden Abschnitten werden wir uns nacheinander jeden dieser Schritte genauer ansehen.
Wir konzentrieren uns auf univariate Daten, z. B. eine Zufallsvariable. in diesem Beitrag der Einfachheit halber. Obwohl die Schritte für multivariate Daten gelten, können sie schwieriger werden ng mit zunehmender Anzahl von Variablen.
Möchten Sie die Wahrscheinlichkeit für maschinelles Lernen lernen
Nehmen Sie jetzt an meinem kostenlosen 7-tägigen E-Mail-Absturzkurs teil (mit Beispielcode).
Klicken Sie hier, um sich anzumelden und eine kostenlose PDF-E-Book-Version des Kurses zu erhalten.
Laden Sie Ihren KOSTENLOSEN Minikurs herunter
Dichte mit einem Histogramm zusammenfassen
Der erste Schritt bei der Dichteschätzung besteht darin, ein Histogramm der Beobachtungen in der Zufallsstichprobe zu erstellen.
Ein Histogramm ist ein Diagramm, bei dem zuerst die Beobachtungen in Bins gruppiert und die Anzahl der Ereignisse gezählt werden, die in jeden Bin fallen. Die Anzahl oder Häufigkeit von Beobachtungen in jedem Bin wird dann als Balkendiagramm mit den Bins auf der x-Achse und der Häufigkeit auf der y-Achse aufgezeichnet.
Die Anzahl der Bins wird gewählt wichtig, da es die Grobheit der Verteilung (Anzahl der Balken) steuert und wiederum, wie gut die Dichte der Beobachtungen aufgetragen ist. Es ist eine gute Idee, mit verschiedenen Behältergrößen für eine bestimmte Datenprobe zu experimentieren, um mehrere Perspektiven oder Ansichten auf dieselben Daten zu erhalten.
Mit der Matplotlib-Bibliothek und der Funktion hist () kann ein Histogramm erstellt werden. Die Daten werden als erstes Argument bereitgestellt, und die Anzahl der Bins wird über das Argument „Bins“ entweder als Ganzzahl (z. B. 10) oder als Folge der Grenzen jedes Bins (z. B.) angegeben.
Mit dem folgenden Snippet wird ein Histogramm mit 10 Bins für eine Datenprobe erstellt.
1
2
3
4
|
…
# Zeichnen Sie ein Histogramm der Probe
pyplot.hist (Probe, bins = 10)
pyplot.show ()
|
Wir können eine Zufallsstichprobe aus einer Normalverteilung und p erstellen Wenn Sie die Verteilung nicht kennen, erstellen Sie ein Histogramm der Daten. Die normale () NumPy-Funktion wird dies erreichen und wir werden 1.000 Abtastwerte mit einem Mittelwert von 0 und einer Standardabweichung von 1 erzeugen, z. ein Standard-Gaußscher Wert.
Das vollständige Beispiel ist unten aufgeführt.
1
2
3
4
5
6
7
8
|
# Beispiel für das Zeichnen eines Histogramms einer Zufallsstichprobe
aus matplotlib import pyplot
aus numpy.random import normal
# generiert eine Stichprobe
sample = normal (Größe = 1000)
# Zeichnen Sie ein Histogramm der Probe
pyplot.hist (sample, bins = 10)
pyplot.show ()
|
Ausführen des Beispiel zeichnet eine Stichprobe von zufälligen Beobachtungen und erstellt das Histogramm mit 10 Bins. Wir können die Form der Normalverteilung deutlich erkennen.
Beachten Sie, dass sich Ihre Ergebnisse aufgrund der Zufälligkeit der Datenstichprobe unterscheiden. Versuchen Sie, das Beispiel einige Male auszuführen.
Histogrammdiagramm mit 10 Bins einer zufälligen Datenprobe
Wenn Sie das Beispiel mit auf 3 gesetzten Bins ausführen, ist die Normalverteilung weniger offensichtlich.
Histogrammdiagramm mit 3 Bins einer zufälligen Datenprobe
Durch Überprüfen eines Histogramms einer Datenprobe mit einer Reihe unterschiedlicher Anzahl von Bins kann festgestellt werden, ob die Dichte aussieht wie eine übliche Wahrscheinlichkeitsverteilung oder nicht.
In den meisten Fällen sehen Sie eine unimodale Verteilung, z. B. die bekannte Glockenform der Normalen, die flache Form der Uniform oder die absteigende oder aufsteigende Form von eine Exponential- oder Pareto-Verteilung.
Möglicherweise werden auch komplexe Verteilungen angezeigt, z. B. mehrere Peaks, die nicht mit einer unterschiedlichen Anzahl von Bins verschwinden, die als bimodale Verteilung bezeichnet werden, oder mehrere Peaks, die als a bezeichnet werden multimodale Verteilung. Möglicherweise sehen Sie auch einen großen Dichtespitzenwert für einen bestimmten Wert oder einen kleinen Wertebereich, der auf Ausreißer hinweist und häufig am Ende einer Verteilung auftritt, die weit vom Rest der Dichte entfernt ist.
Schätzung der parametrischen Dichte
Die Form eines Histogramms der meisten Zufallsstichproben entspricht einer bekannten Wahrscheinlichkeitsverteilung.
Die allgemeinen Verteilungen sind häufig, da sie in verschiedenen und manchmal unerwarteten Bereichen immer wieder auftreten.
Machen Sie sich mit den allgemeinen Wahrscheinlichkeitsverteilungen vertraut, da Sie damit eine bestimmte Verteilung besser identifizieren können ein Histogramm.
Nach der Identifizierung können Sie versuchen, die Dichte der Zufallsvariablen mit einer ausgewählten Wahrscheinlichkeitsverteilung zu schätzen. Dies kann erreicht werden, indem die Parameter der Verteilung aus einer zufälligen Stichprobe von Daten geschätzt werden.
Beispielsweise hat die Normalverteilung zwei Parameter: den Mittelwert und die Standardabweichung. Angesichts dieser beiden Parameter kennen wir nun die Wahrscheinlichkeitsverteilungsfunktion. Diese Parameter können aus Daten geschätzt werden, indem der Stichprobenmittelwert und die Standardabweichung der Stichprobe berechnet werden.
Wir bezeichnen diesen Prozess als parametrische Dichteschätzung.
Der Grund dafür ist, dass wir vordefinierte Funktionen verwenden Um die Beziehung zwischen Beobachtungen und ihrer Wahrscheinlichkeit zusammenzufassen, die mit Parametern gesteuert oder konfiguriert werden kann, daher „parametrisch“.
Sobald wir die Dichte geschätzt haben, können wir überprüfen, ob sie gut passt. Dies kann auf viele Arten erfolgen, z. B.:
- Zeichnen der Dichtefunktion und Vergleichen der Form mit dem Histogramm.
- Abtasten der Dichtefunktion und Vergleichen der generierten Probe mit Die reale Stichprobe.
- Verwenden eines statistischen Tests zur Bestätigung, dass die Daten zur Verteilung passen.
Wir können dies anhand eines Beispiels demonstrieren.
Wir kann aus einer Normalverteilung mit einem Mittelwert von 50 und einer Standardabweichung von 5 eine Zufallsstichprobe von 1.000 Beobachtungen erstellen.
1
2
3
|
…
# ein Beispiel generieren
sample = normal (loc = 50, scale = 5, size = 1000)
|
Wir können dann so tun, als ob wir die Wahrscheinlichkeitsverteilung nicht kennen, und uns vielleicht ein Histogramm ansehen und vermuten, dass es normal ist. Unter der Annahme, dass dies normal ist, können wir dann die Parameter der Verteilung berechnen, insbesondere den Mittelwert und die Standardabweichung.
Wir würden nicht erwarten, dass der Mittelwert und die Standardabweichung bei der kleinen Stichprobengröße genau 50 und 5 betragen und Rauschen im Abtastprozess.
Passen Sie dann die Verteilung mit diesen Parametern an, der sogenannten parametrischen Dichteschätzung unserer Datenstichprobe.
In diesem Fall können wir die Norm verwenden ( ) SciPy-Funktion.
1
2
3
|
…
# definiere die Verteilung
dist = norm (sample_mean, sam ple_std)
|
Wir können dann die Wahrscheinlichkeiten aus dieser Verteilung abtasten für einen Wertebereich in unserer Domäne, in diesem Fall zwischen 30 und 70.
Schließlich können wir ein Histogramm der Datenprobe zeichnen und ein Liniendiagramm der Wahrscheinlichkeiten überlagern, die für den Wertebereich von berechnet wurden das PDF.
Wichtig ist, dass wir die Anzahl oder Häufigkeit in jedem Bin des Histogramms in eine normalisierte Wahrscheinlichkeit umwandeln können, um sicherzustellen, dass die y-Achse des Histogramms mit der y-Achse des Liniendiagramms übereinstimmt. Dies kann erreicht werden, indem das Argument „Dichte“ im Aufruf von hist () auf „Wahr“ gesetzt wird.
1
2
3
4
|
…
# Zeichnen Sie das Histogramm und pdf
pyplot.hist (Beispiel, Bins = 10, Dichte = True)
pyplot.plot (Werte, Wahrscheinlichkeiten)
|
Durch Zusammenbinden dieser Snippets wird das vollständige Beispiel für die parametrische Dichteschätzung unten aufgeführt.
Wenn Sie das Beispiel zuerst ausführen, wird das Datenmuster generiert , schätzt dann die Parameter der normalen Wahrscheinlichkeit Verteilung.
Beachten Sie, dass sich Ihre Ergebnisse aufgrund der Zufälligkeit der Datenstichprobe unterscheiden. Versuchen Sie, das Beispiel einige Male auszuführen.
In diesem Fall können wir feststellen, dass der Mittelwert und die Standardabweichung ein gewisses Rauschen aufweisen und sich geringfügig von den erwarteten Werten von 50 bzw. 5 unterscheiden. Das Rauschen ist gering und die Verteilung wird voraussichtlich immer noch gut passen.
1
|
Mittelwert = 49,852 , Standardabweichung = 5.023
|
Als Nächstes wird das PDF angepasst Die Verwendung der geschätzten Parameter und des Histogramms der Daten mit 10 Bins wird mit den Wahrscheinlichkeiten für einen Wertebereich verglichen, der aus dem PDF entnommen wurde.
Wir können sehen, dass das PDF gut zu unseren Daten passt.
Datenprobenhistogramm mit Überlagerung der Wahrscheinlichkeitsdichtefunktion für die Normalverteilung
Es ist möglich, dass die Daten einer allgemeinen Wahrscheinlichkeitsverteilung entsprechen, jedoch vor der parametrischen Dichteschätzung eine Transformation erfordern.
Beispielsweise können Ausreißerwerte weit entfernt sein der Mittelwert oder Massenschwerpunkt der Verteilung. Dies kann dazu führen, dass die Verteilungsparameter falsch geschätzt werden und die Daten schlecht angepasst werden. Diese Ausreißer sollten vor dem Schätzen der Verteilungsparameter entfernt werden.
Ein weiteres Beispiel ist, dass die Daten einen Versatz aufweisen oder nach links oder rechts verschoben sein können. In diesem Fall müssen Sie möglicherweise die Daten transformieren, bevor Sie die Parameter schätzen, z. B. das Protokoll oder die Quadratwurzel, oder allgemeiner eine Leistungstransformation wie die Box-Cox-Transformation.
Diese Typen Die Anzahl der Änderungen an den Daten ist möglicherweise nicht offensichtlich, und eine effektive Schätzung der parametrischen Dichte erfordert möglicherweise einen iterativen Prozess von:
- Schleife, bis die Anpassung der Verteilung an Daten gut genug ist:
- 1. Schätzen der Verteilungsparameter
- 2. Überprüfen des resultierenden PDF anhand der Daten
- 3. Transformieren der Daten zur besseren Anpassung an die Verteilung
Nichtparametrische Dichteschätzung
In einigen Fällen ähnelt eine Datenstichprobe möglicherweise nicht einer gemeinsamen Wahrscheinlichkeit Verteilung oder kann nicht einfach an die Verteilung angepasst werden.
Dies ist häufig der Fall, wenn die Daten zwei Peaks (bimodale Verteilung) oder viele Peaks (multimodale Verteilung) aufweisen.
In diesem Fall In diesem Fall ist eine parametrische Dichteschätzung nicht möglich, und es können alternative Methoden verwendet werden, die keine gemeinsame Verteilung verwenden. Stattdessen wird ein Algorithmus verwendet, um die Wahrscheinlichkeitsverteilung der Daten ohne eine vordefinierte Verteilung zu approximieren, die als nichtparametrische Methode bezeichnet wird.
Die Verteilungen haben weiterhin Parameter, sind jedoch nicht auf die gleiche Weise direkt steuerbar als einfache Wahrscheinlichkeitsverteilungen. Zum Beispiel könnte ein nichtparametrisches Verfahren die Dichte unter Verwendung aller Beobachtungen in einer Zufallsstichprobe schätzen, wodurch tatsächlich alle Beobachtungen in den „Parametern“ der Stichprobe vorgenommen werden.
Möglicherweise der häufigste nichtparametrische Ansatz zum Schätzen der Wahrscheinlichkeitsdichtefunktion von Eine kontinuierliche Zufallsvariable wird als Kernel-Glättung oder Kernel-Dichteschätzung, kurz KDE, bezeichnet.
- Kernel-Dichteschätzung: Nichtparametrische Methode zur Verwendung eines Datensatzes zur Schätzung von Wahrscheinlichkeiten für neue Punkte.
/ ul>
In diesem Fall ist ein Kernel eine mathematische Funktion, die eine Wahrscheinlichkeit für einen bestimmten Wert einer Zufallsvariablen zurückgibt. Der Kernel glättet oder interpoliert effektiv die Wahrscheinlichkeiten über den Ergebnisbereich für eine Zufallsvariable, so dass die Summe der Wahrscheinlichkeiten ist gleich eins, eine Anforderung an gut erzogene Wahrscheinlichkeiten.
Die Kernelfunktion gewichtet den Beitrag von Beobachtungen aus einer Datenstichprobe basierend auf ihrer Beziehung oder Entfernung zu einer gegebenen Abfragestichprobe, für die t gilt Die Wahrscheinlichkeit wird angefordert.
Ein Parameter, der als Glättungsparameter oder Bandbreite bezeichnet wird, steuert den Umfang oder das Fenster von Beobachtungen anhand der Datenstichprobe, die zur Schätzung der Wahrscheinlichkeit für eine bestimmte Stichprobe beiträgt. Daher wird die Schätzung der Kerneldichte nach den Entwicklern der Methode manchmal als Parzen-Rosenblatt-Fenster oder einfach als Parzen-Fenster bezeichnet.
- Glättungsparameter (Bandbreite): Parameter, der die Anzahl der Stichproben oder Fenster von Stichproben, die zum Schätzen der Wahrscheinlichkeit für einen neuen Punkt verwendet werden.
Ein großes Fenster kann zu einer groben Dichte mit kleinen Details führen, während ein kleines Fenster möglicherweise zu viele Details enthält und nicht glatt oder allgemein genug sein, um neue oder unsichtbare Beispiele korrekt abzudecken.Der Beitrag von Proben innerhalb des Fensters kann unter Verwendung verschiedener Funktionen geformt werden, die manchmal als Basisfunktionen bezeichnet werden, z. einheitliche Normale usw. mit unterschiedlichen Auswirkungen auf die Glätte der resultierenden Dichtefunktion.
- Basisfunktion (Kernel): Die ausgewählte Funktion zur Steuerung des Beitrags von Proben im Datensatz zur Schätzung der Wahrscheinlichkeit eines neuen Punktes.
Daher kann es nützlich sein, mit verschiedenen Fenstergrößen und verschiedenen Beitragsfunktionen zu experimentieren und die Ergebnisse anhand von Histogrammen der Daten zu bewerten.
Wir können dies anhand eines Beispiels demonstrieren.
Zunächst können wir eine bimodale Verteilung erstellen, indem wir Stichproben aus zwei verschiedenen Normalverteilungen kombinieren. Insbesondere 300 Beispiele mit einem Mittelwert von 20 und einer Standardabweichung von 5 (der kleinere Peak) und 700 Beispiele mit einem Mittelwert von 40 und einer Standardabweichung von 5 (der größere Peak). Die Mittelwerte wurden nahe beieinander ausgewählt, um sicherzustellen, dass sich die Verteilungen in der kombinierten Stichprobe überlappen.
Das vollständige Beispiel für die Erstellung dieser Stichprobe mit einer bimodalen Wahrscheinlichkeitsverteilung und die Darstellung des Histogramms ist unten aufgeführt.
Durch Ausführen des Beispiels wird die Datenstichprobe erstellt und das Histogramm grafisch dargestellt.
Beachten Sie, dass sich Ihre Ergebnisse aufgrund der Zufälligkeit der Datenstichprobe unterscheiden. Versuchen Sie, das Beispiel einige Male auszuführen.
Wir haben weniger Stichproben mit einem Mittelwert von 20 als Stichproben mit einem Mittelwert von 40, was sich im Histogramm mit einer größeren Dichte von Stichproben um 40 als etwa widerspiegelt 20.
Daten mit dieser Verteilung passen aufgrund ihres Designs nicht gut in eine gemeinsame Wahrscheinlichkeitsverteilung. Dies ist ein guter Fall für die Verwendung einer nichtparametrischen Kernel-Dichteschätzmethode.
Histogramm-Diagramm der Datenprobe Mit einer bimodalen Wahrscheinlichkeitsverteilung
Die Scikit-Learn-Bibliothek für maschinelles Lernen stellt die KernelDensity-Klasse bereit, die die Schätzung der Kerneldichte implementiert.
Zunächst wird die Klasse mit der gewünschten Bandbreite erstellt Argumente (Fenstergröße) und Kernel (Basisfunktion). Es ist eine gute Idee, verschiedene Konfigurationen Ihrer Daten zu testen. In diesem Fall versuchen wir eine Bandbreite von 2 und einen Gaußschen Kernel.
Die Klasse wird dann über die Funktion fit () an ein Datenmuster angepasst. Die Funktion erwartet, dass die Daten eine 2D-Form mit dem Formular haben. Daher können wir unser Datenmuster so umformen, dass es 1.000 Zeilen und 1 Spalte enthält.
1
2
3
4
5
|
…
# Anpassungsdichte
model = KernelDensity (Bandbreite = 2, Kernel = „Gauß“)
sample = sample.reshape ((len (sample), 1))
model.fit (Beispiel)
|
Wir können dann bewerten, wie gut die Dichteschätzung mit unseren Daten übereinstimmt, indem wir die Wahrscheinlichkeiten für einen Bereich von Beobachtungen berechnen Ervationen und Vergleichen der Form mit dem Histogramm, genau wie wir es für den parametrischen Fall im vorherigen Abschnitt getan haben.
Die Funktion score_samples () in der KernelDensity berechnet die Protokollwahrscheinlichkeit für ein Array von Stichproben. Wir können einen Bereich von Stichproben von 1 bis 60 über den Bereich unserer Domäne erstellen, die Protokollwahrscheinlichkeiten berechnen und dann die Protokolloperation invertieren, indem wir den Exponenten oder exp () berechnen, um die Werte für normale Wahrscheinlichkeiten in den Bereich 0-1 zurückzugeben .
Schließlich können wir ein Histogramm mit normalisierten Frequenzen und einem Überlagerungsliniendiagramm mit Werten für geschätzte Wahrscheinlichkeiten erstellen.
1
2
3
4
5
|
…
# zeichnet das Histogramm und pdf
pyplot.hist (Beispiel, Bins = 50, Dichte = True)
pyplot.plot (Werte, Wahrscheinlichkeiten)
pyplot.show ()
|
Wenn Sie dies zusammenfassen, wird unten das vollständige Beispiel für die Kernel-Dichteschätzung für eine bimodale Datenprobe aufgeführt.
Durch Ausführen des Beispiels wird die Datenverteilung erstellt, das Kernel-Dichteschätzungsmodell angepasst und dann das Histogramm von aufgezeichnet das Datenbeispiel und das PDF aus dem KDE-Modell.
Beachten Sie, dass sich Ihre Ergebnisse aufgrund der Zufälligkeit der Datenstichprobe unterscheiden. Versuchen Sie, das Beispiel einige Male auszuführen.
In diesem Fall sehen wir, dass das PDF gut zum Histogramm passt. Es ist nicht sehr flüssig und könnte durch Setzen des Arguments „Bandbreite“ auf 3 Abtastwerte oder höher verbessert werden. Experimentieren Sie mit verschiedenen Werten der Bandbreite und der Kernelfunktion.
Histogramm und Wahrscheinlichkeitsdichtefunktionsdiagramm, geschätzt über Kernel Density Estimation für eine bimodale Datenprobe
Die KernelDensity-Klasse ist leistungsstark und unterstützt das Schätzen des PDF für mehrdimensionale Daten.
Weiterführende Literatur
Dieser Abschnitt enthält weitere Ressourcen zu diesem Thema, wenn Sie tiefer gehen möchten.
Bücher
- Mustererkennung und maschinelles Lernen, 2006.
- Maschinelles Lernen: Eine probabilistische Perspektive, 2012.
- Die Elemente des statistischen Lernens: Data Mining, Inferenz und Vorhersage, 2009.
API
- scipy.stats.gaussian_kde API.
- Nichtparametrische Methoden nichtparametrisch, Statsmodels API.
- Kernel Density Estimation Statsmodels Exa mple.
- Dichteschätzung, Scikit-Learn-API.
Artikel
- Dichteschätzung, Wikipedia.
- Histogramm, Wikipedia.
- Kernel-Dichteschätzung, Wikipedia.
- Multivariate Kernel-Dichteschätzung, Wikipedia.
- Kernel-Dichteschätzung über die Parzen-Rosenblatt-Fenstermethode, 2014.
- Detailliert: Schätzung der Kerneldichte.
Zusammenfassung
In diesem Lernprogramm haben Sie eine sanfte Einführung in die Wahrscheinlichkeitsdichteschätzung gefunden.
Insbesondere haben Sie Folgendes gelernt:
- Histogrammdiagramme bieten eine schnelle und zuverlässige Möglichkeit, die Wahrscheinlichkeitsdichte einer Datenprobe zu visualisieren.
- Parametrische Wahrscheinlichkeitsdichte Bei der Schätzung wird eine gemeinsame Verteilung ausgewählt und die Parameter für die Dichtefunktion aus einer Datenprobe geschätzt.
- Bei der nichtparametrischen Wahrscheinlichkeitsdichteschätzung wird eine Technik verwendet, um ein Modell an die willkürliche Verteilung der Daten anzupassen, z on.
Haben Sie Fragen?
Stellen Sie Ihre Fragen in den Kommentaren unten und ich werde mein Bestes tun, um sie zu beantworten.
Die Wahrscheinlichkeit für maschinelles Lernen in den Griff bekommen!
Entwickeln Sie Ihr Verständnis der Wahrscheinlichkeit
… mit nur wenigen Zeilen Python-Code
Entdecken Sie in meinem neuen E-Book, wie:
Wahrscheinlichkeit für maschinelles Lernen
Es bietet Selbststudium Tutorials und End-to-End-Projekte zu folgenden Themen:
Bayes-Theorem, Bayes’sche Optimierung, Verteilungen, maximale Wahrscheinlichkeit, Kreuzentropie, Kalibrierung von Modellen
und vielem mehr …
Endlich nutzen Sie die Unsicherheit in Ihre Projekte
Überspringen Sie die Akademiker. Nur Ergebnisse. Sehen Sie, was drin ist