Ein Modell, das ich konstruiert habe, produziert Ausgabe, die die Form von drei normalen Verteilungen annimmt.erkennen separate Normalverteilungen in einem Datensatz
import numpy as np
d1 = [np.random.normal(2,.1) for _ in range(100)]
d2 = [np.random.normal(2.5,.1) for _ in range(100)]
d3 = [np.random.normal(3,.1) for _ in range(100)]
sudo_model_output = d1 + d2 + d3
np.random.shuffle(sudo_model_output)
Was ist ein pythonic Weg, um die Normalverteilung Mittelwert und Standardabweichung bei jeder Normalverteilung zugeordnet zu finden? Ich kann eine Schätzung, wo die Verteilungen beginnen und enden, nicht fest codieren (~ 2,25 und 2,75 hier), da sich der Wert mit jeder Iteration meiner Simulation ändert.
Sie können versuchen, die Summe von drei Normalverteilungen mit jeweils eigener Mitte und Breite anzupassen, die 6 Variablen ergeben würden. Wenn die Breiten ähnlich sind, könnten Sie mit 4 Variablen (centre1, ctr2, ctr3, width) davonkommen. – roadrunner66
Dazu müsste ich irgendwie die Daten richtig trennen? – kilojoules
Nein, Sie können nicht wissen, ob ein bestimmter Wert zu einer gegebenen Verteilung gehört, wenn sie sehr nahe beieinander liegen. Sie passen einfach die Summe an, siehe unten. – roadrunner66