K-means++法
このk-means++法は、初期のk個のクラスタ中心はなるべく離れている方が良いという考えにもとづいている。まず始めにデータ点をランダムに選び1つ目のクラスタ中心とし、全てのデータ点とその最近傍のクラスタ中心の距離を求め、その距離の二乗に比例した確率でクラスタ中心として選ばれていないデータ点をクラスタ中心としてランダムに選ぶ。
アルゴリズムは以下の手順で行われる。
この初期値決めの方法はk-means法を著しく改善する。 初期値決めに余計な時間がかかるが、k-means法は収束がとても早く計算時間はそれほどかからない。 著者らはこの手法を実データと人工データの両方で実験を行い、 だいたい収束スピードに関しては2倍、あるデータセットでは誤差が1000分の1となったことを報告している。 一連の実験では定番のk-means法に速度と誤差に関してつねに優っていた。
それに加え、このアルゴリズムの近似率が計算されている。k-means++法は 平均的に O ( log  k ) {\displaystyle O(\log k)} の近似比率で近似可能であることが保証されている。 k {\displaystyle k} はクラスタ数である。これに対し、標準的なk-means法では最適値に対して任意の精度で悪くなることがある。