問題タブ [k-means]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - K-Means ++アルゴリズムをどのように実装できますか?
K-Means++アルゴリズムを完全に理解するのに問題があります。k
最初の重心がどのように選択されるか、つまり、残りが元のK-Meansアルゴリズムのように初期化されることに正確に興味があります。
- 確率関数は距離またはガウスに基づいて使用されますか?
- 同時に、(他の図心からの)最も長い距離の点が新しい図心のために選択されます。
ステップバイステップの説明と例をいただければ幸いです。ウィキペディアのものは十分に明確ではありません。また、非常によくコメントされたソースコードも役立ちます。6つのアレイを使用している場合は、どれが何のためのものかを教えてください。
python - OpenCV KMeans(K-Means)python出力クラスター数の問題
私はOpenCVのPythonインターフェースを使用して、多次元データ(通常は7次元)のK-Meansクラスタリングを実行しています。クラスターに対して奇妙な結果が得られています。n個のクラスター(インデックス0からn)を要求する場合、一部のクラスターにはポイントが割り当てられていません。その結果、クラスターが予想よりも少なくなります。誰かがOpenCVのpythonK-Means実装をうまく使用しましたか?いくつかのユーザーエクスペリエンスまたはアドバイスが最も役立ちます。
これが私のPython実装のコードスニペットです:
よろしく、
ステファン
python - scikit-learn K-Means Clustering を使用して独自の距離関数を指定することは可能ですか?
scikit-learn K-Means Clustering を使用して独自の距離関数を指定することは可能ですか?
algorithm - このタスクを完了するためにどのアルゴリズムを選択する必要があるか
こんにちは、私はClusterを初めて使用します。どのアルゴリズムが自分のタスクに適しているかわかりません。私の仕事を説明させてください:
- 最初に、一連のポイントとそれらの間の距離が与えられます
- 距離に基づいてそれらをいくつかのクラスターにクラスター化します。
- いくつかの新しいポイントが追加され、すべてのポイント間の距離も与えられます。
- 繰り返し 2
たとえば、最初に次の行列があります
クラスタリングの後、新しいポイントを追加し、距離も指定します。
ここでの問題は速度です。クラスタリングはインクリメンタル クラスタであると予想されます。つまり、後のクラスタリングは前の結果を利用できます。ポイントを頻繁に追加し (見つかった場合)、毎回ポイントを再クラスター化するためです。クラスター自体が O(n) であっても、クラスターの合計時間は O(n^2) になります。
なにか提案を?
ありがとう
hadoop - Hadoop クラスターに Mahout をデプロイする
5 台のマシンの Hadoop クラスターで Mahout の K-Means の例を実行したいと考えています。K-Means を分散方式で実行するには、どの Mahout jar ファイルをすべてのノードに保持する必要がありますか。ありがとう。
-ヴェンキラム
r - Rでは、kmeans()とkmeansCBI()の違いは何ですか?
データセットのパッケージから両方kmeans()
を試しました。kmeansCBI()
fps
ただし、SSEの値が異なるため、どちらが正しい値かはわかりません。
たとえば、700*5 のデータでkmeans()
は、SSE として約 33000 が得られますが、SSEkmeansCBI()
としては 120 が得られます。
どの値を使用すればよいですか?
ありがとう。
r - R-'princomp'は、変数よりも多くの単位でのみ使用できます
Rソフトウェア(Rコマンダー)を使用してデータをクラスター化しています。200行と約800列を含むデータの小さなサブセットがあります。kmeansクラスターを実行してグラフにプロットしようとすると、次のエラーが発生します。「「princomp」は、変数よりも多くの単位でのみ使用できます」
次に、10行10列のテストドキュメントを作成しましたが、プロットは正常ですが、列を追加すると、再びエラーが発生します。どうしてこれなの?クラスターをプロットできるようにする必要があります。kmeansを実行した後にデータセットを表示すると、それらが属するクラスターを示す追加の結果列が表示されます。
私が間違っていることはありますか?このエラーを取り除き、より大きなサンプルをプロットできますか?助けてください、今一週間私の頭を破壊しています。みんなありがとう。
r - R: 実行するたびにクラスタリングの結果が異なる
'amap' パッケージに入れて数回実行しますが、パラメーターとシード値は常に同じですが、Kmeans やその他のクラスター メソッドを実行するたびに、クラスター化の結果が異なります。
別のパッケージで別の kmeans 関数を試しましたが、それでも同じです...
実は、Weka と R を併用したいのでSimpleKMeans
、RWeka パッケージでも試してみましたが、これは常に同じ値を返します。ただし、問題は、クラスタ化されたデータをSimpleKmeansのクラスタ番号とともにRWekaに保存する方法がわからないため、行き詰まっていることです...
とにかく、クラスタリングの結果を常に同じに保つにはどうすればよいですか? SimpleKmeans
またはクラスタリングの結果をRに保存するにはどうすればよいですか?
optimization - k-meansからの重心を使用してベクトル量子化を行うために、このMatlabコードを最適化することは可能ですか?
サイズ4000x300のk-means(4000セントロイド、それぞれ300の機能)を使用してコードブックを作成しました。次に、コードブックを使用して、入力ベクトルにラベルを付けます(後でビニングするため)。入力ベクトルのサイズはNx300です。ここで、Nは私が受け取る入力インスタンスの総数です。
ラベルを計算するために、各入力ベクトルに最も近い重心を計算します。そのために、各入力ベクトルをすべての重心と比較し、最小距離の重心を選択します。その場合、ラベルはその重心の単なるインデックスになります。
私の現在のMatlabコードは次のようになります。
ただし、このコードは(私の目的では)まだかなり遅いので、コードをさらに最適化する方法があるのではないかと期待していました。
明らかな問題の1つは、Matlabでの良好なパフォーマンスの悩みの種であるforループがあることです。私はそれを取り除く方法を考え出そうとしていましたが、運がありませんでした(bsxfunと組み合わせてarrayfunを使用することを検討しましたが、それが機能するようにはなりませんでした)。あるいは、誰かがこれをスピードアップする他の方法を知っているなら、私はそれを大いに感謝します。
アップデート
検索を行った後、Matlabを使用した優れたソリューションが見つからなかったため、Pythonのscikits.learnパッケージで「euclidean_distance」(短縮)に使用されているものを確認することにしました。
これは、ユークリッド距離の二項形式((xy)^ 2-> x ^ 2 + y ^ 2- 2xy)を使用します。これは、私が読んだものから、通常はより高速に実行されます。私の完全にテストされていないMatlabの翻訳は次のとおりです。
cluster-analysis - WEKA K-Means クラスタリング
WEKA での K-Means クラスタリングの出力が実際に何を意味するのか、誰か説明できますか?
例えば
列の数字は実際には何を意味するのか、表の上にあるクラスターの重心と書かれていますが、2 つのクラスターの重心が何であるかを判断するにはどうすればよいでしょうか?
誰かが数字の意味を説明できれば、私は最も感謝しています.
見つかったクラスターのシルエット評価を完了する方法について何かアイデアがあれば、それも素晴らしいでしょう。
ありがとう