Ich habe keine Branchenerfahrung im Bereich Data Mining oder Big Data und würde mich freuen, wenn Sie Erfahrungen austauschen.
Führen die Leute tatsächlich k-means, PAM, CLARA usw. für einen wirklich großen Datensatz aus? Oder wählen sie einfach zufällig eine Probe aus? Wenn sie nur eine Stichprobe des Datensatzes entnehmen, wäre das Ergebnis dann zuverlässig, wenn der Datensatz nicht normal verteilt ist?
Können wir in praktischen Situationen beim Ausführen dieser Algorithmen feststellen, wie viele Iterationen normalerweise dauern würden, bis Konvergenz auftritt? Oder wächst die Anzahl der Iterationen immer mit der Datengröße?
Ich frage dies, weil ich darüber nachdenke, einen Ansatz zu entwickeln, um die iterativen Algorithmen vor der Konvergenz zu beenden, und die Ergebnisse dennoch akzeptabel sind. Ich denke, es lohnt sich zu versuchen, wenn die Anzahl der Iterationen mehr als 1.000 beträgt, damit wir Rechenaufwand und Zeit sparen können. Was denkst du?
number of iterations always grow with the data size
Nicht unbedingt.Antworten:
K-Mittel ist billig. Sie können es sich leisten, es für viele Iterationen auszuführen .
Es gibt schlechte Algorithmen (die Standardalgorithmen) und gute Algorithmen. Für gute Algorithmen kosten spätere Iterationen oft viel weniger als 1% der ersten Iteration.
Es gibt sehr langsame Implementierungen. Benutze sie nicht.
K-Mittel für "große" Daten gibt es nicht. Weil es nur mit niedrigdimensionalen Vektordaten funktioniert. Sie werden den Speicher eines modernen Servers mit solchen Daten nicht überschreiten. Ja, es gibt größere Daten - aber Sie können k-means nicht für beispielsweise einen Monat Twitter-Daten verwenden, da Sie dadurch nichts Nützliches erhalten.
Bei einer guten Implementierung auf einem modernen Server benötigt der größte Datensatz, den Sie finden können, bei dem k-means noch ein nützliches Ergebnis liefert, wahrscheinlich weniger als 1 Minute, um bis zur Konvergenz zu berechnen. Warum also über eine Iterationsgrenze nachdenken?
quelle