web-dev-qa-db-ja.com

k-meansの時間計算量はどれくらいですか?

k-means Wikipedia page を通過していました。アルゴリズムに基づくと、複雑さはO(n*k*i)n =合計要素、k =クラスター反復回数)だと思います。

それで、誰かがウィキペディアからのこの声明を私に説明することができます、そしてこれはどのようにNP難しいですか?

kd(次元)が固定されている場合、問題は時間O(ndk+1 log n)で正確に解決できます。ここで、nは次のエンティティの数です。クラスター化されます。

12
parallel

それはあなたが何と呼ぶか​​によりますk-意味します。

k-means 目的関数のグローバル最適化を見つける問題

enter image description here

はNP困難です。ここで、_Si_はクラスターi(およびkクラスターがあります)、_xj_はd次元の点です。クラスター_Si_および_μi_は、クラスター_Si_の重心(ポイントの平均)です。

ただし、 標準アルゴリズム の反復の固定数tを実行すると、nd-の場合、O(t*k*n*d)のみが必要になります。次元)ポイント。ここで、kは重心(またはクラスター)の数です。これは実際の実装が行うことです(多くの場合、反復の間にランダムに再起動します)。

標準アルゴリズムは、上記の関数の局所最適値を近似するだけなので、すべてのk-私が見たアルゴリズムを意味します。

25
Fred Foo

この回答 では、iがk-meansの目的式で使用され、iがk-meansの時間計算量の分析で使用されることに注意してください(つまり、収束するまでに必要な反復回数)は異なります。

2
masec

別のよく知られているNP(平面)k-means問題に還元できる難しい問題があるため、問題はNP困難です。論文を見てください 詳細については、平面k-means問題はNP困難 (Mahajan et al。による)です。

1
Tessaracter