2016-12-01 3 views
1

クラスsklearn.cluster.KMeansのmax_iterパラメータを理解したいと思います。Scikit-learn、KMeans:max_iterの使い方

は、ドキュメントによると:私は100個のオブジェクトを持っている場合

max_iter : int, default: 300 
Maximum number of iterations of the k-means algorithm for a single run. 

しかし、私の意見では、コードは、私が10.000オブジェクトを持っている場合、コードはすべてのオブジェクトをcassifyする10.000回を実行する必要があり、100回を実行する必要があります。 一方、すべてのオブジェクトに対して複数回実行することは意味がありません。

私の誤解は何ですか、このパラメータをどのように解釈する必要がありますか?

答えて

1

こちらをご覧ください:

https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

アップデート重心をクリックするたびに、新しい反復が実行されます。重心を動かすと、それらの重心までの距離も変化し、いくつかの点がクラスタを変更する可能性があるため、理にかなっています。

+0

ありがとうございます! Sklearnのk-meansとMac Queenの違いがあるようです(彼の出版物の283ページ:http://projecteuclid.org/download/pdf_1/euclid.bsmsp/1200512992) –

+0

より大きいmax_iterの値は、よりよい結果を得るでしょうか? – Eddy

1

はい、パラメータを誤解しています。

全体の1回の繰り返しがデータセットです。 100のオブジェクトがある場合、1つの反復で100ポイントが割り当てられます。 10000個のオブジェクトがある場合、1つの反復処理で10000個のオブジェクトが処理されます。

もっと巧妙なアルゴリズムがあります。 sklearn k-meansはすべての反復ですべてのオブジェクトを処理します。

関連する問題