Ich habe einige Daten über die Zeit zwischen den Herzschlägen eines Menschen. Ein Hinweis auf ektopische (zusätzliche) Beats ist, dass diese Intervalle um drei Werte anstatt um einen gruppiert sind. Wie kann ich ein quantitatives Maß dafür erhalten?
Ich möchte mehrere Datensätze vergleichen, und diese beiden 100-Bin-Histogramme sind repräsentativ für alle.
Ich könnte die Varianzen vergleichen, aber ich möchte, dass mein Algorithmus erkennen kann, ob es jeweils einen oder drei Cluster gibt, ohne mit den anderen Fällen zu vergleichen.
Dies ist für die Offline-Verarbeitung vorgesehen, sodass bei Bedarf viel Rechenleistung zur Verfügung steht.
clustering
Nikolaus
quelle
quelle
Antworten:
Ich rate dringend gegen Verwendung von k-means hier. Die Ergebnisse für verschiedene Werte von k sind nicht sehr gut vergleichbar. Die Methode ist nur eine grobe Heuristik. Wenn Sie wirklich Clustering verwenden möchten, verwenden Sie EM-Clustering, da Ihre Daten normale Verteilungen zu enthalten scheinen. Und validieren Sie Ihre Ergebnisse!
Stattdessen besteht der offensichtliche Ansatz darin, zu versuchen, eine einzelne Gaußsche Funktion anzupassen und (zum Beispiel unter Verwendung der Levenberg-Marquard-Methode) drei Gaußsche Funktionen anzupassen, die möglicherweise auf dieselbe Höhe beschränkt sind (um eine Degeneration zu vermeiden).
Testen Sie dann, welche der beiden Verteilungen besser passt.
quelle
Passen Sie eine Mischungsverteilung an die Daten an, etwa eine Mischung aus drei Normalverteilungen, und vergleichen Sie dann die Wahrscheinlichkeit dieser Anpassung mit einer Anpassung einer einzelnen Normalverteilung (mithilfe des Likelihood-Ratio-Tests oder AIC / BIC). Das
flexmix
Paket fürR
kann hilfreich sein.quelle
Wenn Sie K-Mittel-Clustering verwenden möchten, benötigen Sie eine Möglichkeit, die Fälle und zu vergleichen . Ein Ansatz wäre, die verwenden Lücke Statistik von Tibshirani et al. und wählen Sie das , das den besseren Wert liefert. In SLmisc ist eine R-Implementierung verfügbar , obwohl diese bestimmte Funktion versucht. Sie müssen also darauf achten, dass nur oder als optimaler Wert zurückgegeben werden kann.K = 3 K K = 1 , 2 , 3 K = 1 K = 3K=1 K=3 K K=1,2,3 K=1 K=3
quelle
Verwenden Sie einen K-Mittel-Clustering-Algorithmus, um die verschiedenen Mittel zu identifizieren
Suchen Sie in R-seek nach der Funktion KNN, um die entsprechende Funktion zu finden
quelle
kmeans
Funktion versucht . Die resultierenden Mittel variieren stark von Versuch zu Versuch. (Schlechte Heuristik in dieser Implementierung?) Für den 1-Cluster-Satz erhalte ich manchmal Mittelwerte um (270.293.693), manchmal um (260.285.308). Für den 3-Cluster-Satz sind einige Antworten (196.324.468) und (290.459.478).