Ich habe eine Reihe von Schwimmern wie folgt aus:Partitionieren eines Schwimmers Array in ähnlichen Segmenten (Clustering)
[1.91, 2.87, 3.61, 10.91, 11.91, 12.82, 100.73, 100.71, 101.89, 200]
Nun, ich möchte das Array wie folgt aufzuteilen:
[[1.91, 2.87, 3.61] , [10.91, 11.91, 12.82] , [100.73, 100.71, 101.89] , [200]]
// [ 200] wird als ein Ausreißer wegen weniger Cluster-Unterstützung betrachtet werden
Ich muss diese Art von Segment für mehrere Arrays zu finden, und ich weiß nicht, was sollte die Partitionsgröße sein. Ich habe versucht, es mit hierarchical clustering (Agglomerative) zu tun, und es gibt zufriedenstellende Ergebnisse für mich. Das Problem ist jedoch, dass ich vorgeschlagen habe, keine Clustering-Algorithmen für eindimensionales Problem zu verwenden, da dies keine theoretische Begründung (wie sie es für mehrdimensionale Daten sind) gibt.
Ich verbrachte viel Zeit, um eine Lösung zu finden. Allerdings scheinen die Vorschläge ganz anders zu sein: this und this VS. this und this und this.
Ich fand einen anderen Vorschlag als Clustering, d.h. natural breaks optimization. Dies muss jedoch auch die Partitionsnummer wie K-means (richtig?) Deklarieren.
Es ist ziemlich verwirrend (besonders weil ich diese Art von Segmentierung auf mehreren Arrays durchführen muss und es unmöglich ist, die optimale Partitionsnummer zu kennen).
Gibt es irgendwelche Möglichkeiten, Partitionen zu finden (so können wir die Varianz innerhalb von Partitionen reduzieren und die Varianz zwischen Partitionen maximieren) mit einigen theoretischen Begründung?
Alle Hinweise auf Artikel/Artikel (wenn verfügbar C/C++/Java-Implementierung) mit einigen theoretischen Begründung wird sehr hilfreich für mich sein.
Ich bin gespannt, wie warum Clustering nicht für eindimensionale Daten paßt - was ist, wenn man irgendwie die Dimensionalität erhöhen zB sqrt (n) als Dimension hinzufügen, ein bisschen wie bei SVMs? –
@ZiyaoWei, "warum Clustering nicht für eindimensionale Daten passt" - wirklich weiß ich nicht. In der Klasse wurde mir gesagt, dass es verrückt ist, Clustering in 1-d-Daten zu verwenden. aber, ich fand keinen Artikel, der angibt, warum ich nicht (oder kann). – alessandro
@ZiyaoWei steigende Dimension ohne Grund scheint nicht eine gute Lösung. – alessandro