問題タブ [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.

0 投票する
1 に答える
2313 参照

algorithm - L メソッドでスムーザーを使用して K-Means クラスターの数を決定する

データセット内の k-means クラスターの数を決定するために L メソッドを適用する前に、評価メトリックにスムーサーを適用しようとした人はいますか? もしそうなら、それは結果を改善しましたか?または、より少ない数の k-means 試行を許可して、速度を大幅に向上させますか? どの平滑化アルゴリズム/方法を使用しましたか?

「L-メソッド」の詳細については、「 階層クラスタリング/セグメンテーション アルゴリズムでのクラスタ/セグメント数の決定」 、サルバドール & チャンを参照してください。

これにより、さまざまな試行クラスター数の範囲の評価メトリックが計算されます。次に、ニー (最適な数のクラスターで発生する) を見つけるために、線形回帰を使用して 2 つの線が適合されます。膝のフィットを改善するために、単純な反復プロセスが適用されます。これは、既存の評価メトリック計算を使用し、k-means の再実行を必要としません。

評価指標については、単純化した Dunns Index の逆数を使用しています。速度のために簡略化されています (基本的に、直径とクラスター間の計算は簡略化されています)。逆数は、インデックスが正しい方向に機能するようにするためのものです (つまり、一般的に低いほど良い)。

K-means は確率的アルゴリズムであるため、通常は複数回実行され、最適なものが選択されます。これは非常にうまく機能しますが、1..N クラスターに対してこれを行うと、時間がすぐに加算されます。したがって、実行数を抑えることは私の関心事です。私の実装が実用的かどうかは、全体の処理時間によって決まる可能性があります。高速化できない場合は、この機能を捨てるかもしれません。

0 投票する
1 に答える
1558 参照

machine-learning - k-meansは無限ループに陥ることができますか?

私はk-meansアルゴリズムを研究し、それがどのように機能するかを知っています。

不思議なことに、このアルゴリズムが無限ループに陥る状況はありますか?たとえば、最初の重心点に特定の悪い選択がある場合はどうでしょうか?私は、k-meansが悪い初期選択で極小値に達する状況を想像することしかできませんでした。

0 投票する
4 に答える
2268 参照

cluster-analysis - 100 次元空間に 2,000,000 ポイントがあります。それらを K 個 (たとえば 1000 個) のクラスターにクラスター化するにはどうすればよいですか?

問題は次のようになります。M 個の画像があり、画像ごとに N 個の特徴を抽出します。各特徴の次元は L です。したがって、M*N 個の特徴 (私の場合は 2,000,000) があり、各特徴の次元は L (私の場合は 100) です。これらの M*N 個の特徴を K 個のクラスターにクラスター化する必要があります。どうすればいいですか?ありがとう。

0 投票する
1 に答える
3378 参照

testing - k-meansの実装をどのようにテストしますか?

多次元データセットの独自のk-means実装をどのようにテストしますか?

データに対して既存の実装(つまりMatlab)を実行し、その結果をアルゴリズムと比較することを考えていました。ただし、これには両方のアルゴリズムがほぼ同じように機能する必要があり、2つの結果間のマッピングはおそらく簡単ではありません。

もっといいアイデアはありますか?

0 投票する
1 に答える
4343 参照

matlab - MATLAB で事前定義されたシードを使用した K-means クラスタリングの使用

MATLAB で K-means クラスタリングを使用する方法を示す必要がありますが、事前に指定されたデータポイントを初期シードとして使用します。

ありがとう

0 投票する
3 に答える
4899 参照

matlab - MATLAB の Kmeans クラスタリングで重心に最も近いデータ ポイントのインデックスを取得する

MATLAB で K-means を使用してクラスタリングを行っています。ご存知かもしれませんが、使用法は次のとおりです。

ここで、IDX は X の各データ ポイントのクラスター番号を示し、C は各クラスターの重心を示します。重心に最も近いデータ ポイントのインデックス (実際のデータ セット X の行番号) を取得する必要があります。どうすればそれができるか知っている人はいますか?ありがとう

0 投票する
6 に答える
15230 参照

algorithm - 高速 (< n^2) クラスタリング アルゴリズム

k << 100 万の k クラスターにグループ化する必要がある 100 万の 5 次元ポイントがあります。各クラスターでは、2 つのポイントが離れすぎてはなりません (たとえば、指定された半径の境界球である可能性があります)。つまり、おそらくサイズ 1 のクラスターが多数存在するはずです。

しかし!実行時間がn ^ 2をはるかに下回る必要があります。n log n 程度で十分です。このクラスタリングを行っている理由は、すべての n ポイントの距離行列を計算するのを避けるためです (n^2 時間または何時間もかかります)。代わりに、クラスター間の距離を計算したいだけです。

pycluster k-means アルゴリズムを試してみましたが、遅すぎることにすぐに気付きました。次の貪欲なアプローチも試しました。

  1. 空間を各次元で 20 個にスライスします。(したがって、合計 20^5 個のピース​​があります)。重心に従って、これらのグリッドボックスにクラスターを格納します。

  2. 各ポイントについて、r (境界球の最大半径) 内にあるグリッドボックスを取得します。十分に近いクラスターがある場合は、そのクラスターに追加し、そうでない場合は新しいクラスターを作成します。

ただし、これにより、必要以上のクラスターが得られるようです。これに似たアプローチも2回実装しましたが、それらは非常に異なる答えを出します。

n^2 時間よりも高速にクラスタリングするための標準的なアプローチはありますか? 確率的アルゴリズムは問題ありません。

0 投票する
2 に答える
1452 参照

performance - Javaで何千ものテキストドキュメントをクラスター化する

テキストドキュメントをクラスタリングする効率的な方法はありますか?K-Meansについて考えましたが、時間がかかりすぎるようです。誰かが私に効率的な方法を提供できますか?

0 投票する
1 に答える
8336 参照

algorithm - k-meansクラスタリングの改善

コンピュータービジョンに関する私の講義ノートでは、クラスターの標準偏差がわかっていれば、k-meansクラスタリングアルゴリズムのパフォーマンスを向上させることができると述べています。どうして?

私の考えでは、標準偏差を使用して、最初にヒストグラムベースのセグメンテーションを通じてより良い初期推定値を考え出すことができます。どう思いますか?助けてくれてありがとう!

0 投票する
1 に答える
594 参照

algorithm - kは、既存の情報を使用したセグメンテーションを意味します

だから私はこの質問に出くわしました:

緑(草)の背景に対して動く(赤)クリケットボールを識別する必要があります。カラー画像とオプティカルフローフィールドの両方が利用可能であると仮定して、K-meansセグメンテーションを使用してこのタスクに対処する方法を簡単に説明します。

私の答えは、2つの色があるので2つのクラスターを定義することです。オプティカルフローがあるので、クリケットボールを識別し、そのボール内のクラスターを使用して各クラスターの平均を算出できます。次に、k-meansを開始します。

私の説明は理にかなっていると思いますか?もしそうなら、オプティカルフローがすでにわかっている画像をセグメント化するためにk-meansアルゴリズムを使用する必要がある理由がわかりません(したがって、最初からセグメント化できます)。考え?助けてくれてありがとう!