="kmeans-fundamentals.html#kmeans-lloyd">Lloyd's algorithm</a>). Combined with a good initialization strategy (<a class="el" href="kmeans-fundamentals.html#kmeans-init">Initialization methods</a>) and, potentially, by re-running the optimization from a number of randomized starting states, this algorithm may attain satisfactory solutions in practice.</p>
<p>However, despite its simplicity, Lloyd's algorithm is often too slow. A good replacement is Elkan's algorithm (<a class="el" href="kmeans-fundamentals.h