k-means Wikipedia page を通過していました。アルゴリズムに基づくと、複雑さはO(n*k*i)
(n
=合計要素、k
=クラスター反復回数)だと思います。
それで、誰かがウィキペディアからのこの声明を私に説明することができます、そしてこれはどのようにNP難しいですか?
k
とd
(次元)が固定されている場合、問題は時間O(ndk+1 log n)
で正確に解決できます。ここで、n
は次のエンティティの数です。クラスター化されます。
それはあなたが何と呼ぶかによりますk-意味します。
k-means 目的関数のグローバル最適化を見つける問題
はNP困難です。ここで、_Si
_はクラスターi
(およびk
クラスターがあります)、_xj
_はd
次元の点です。クラスター_Si
_および_μi
_は、クラスター_Si
_の重心(ポイントの平均)です。
ただし、 標準アルゴリズム の反復の固定数t
を実行すると、n
(d
-の場合、O(t*k*n*d)
のみが必要になります。次元)ポイント。ここで、k
は重心(またはクラスター)の数です。これは実際の実装が行うことです(多くの場合、反復の間にランダムに再起動します)。
標準アルゴリズムは、上記の関数の局所最適値を近似するだけなので、すべてのk-私が見たアルゴリズムを意味します。
この回答 では、i
がk-meansの目的式で使用され、i
がk-meansの時間計算量の分析で使用されることに注意してください(つまり、収束するまでに必要な反復回数)は異なります。
別のよく知られているNP(平面)k-means問題に還元できる難しい問題があるため、問題はNP困難です。論文を見てください 詳細については、平面k-means問題はNP困難 (Mahajan et al。による)です。