-2

PSOアルゴリズムから指定された決定されたクラスター位置でKMEANSアルゴリズムを適用するにはどうすればよいですか??

4

2 に答える 2

0

扱っているデータの性質に関する情報 (ディメンション、データ型、外れ値、オーバーラップなどの数値) がなければ、具体的な回答を提供することはできません。

アルゴリズムが k-means 重心を初期化するために使用する重心のリストを渡すことができる本物のk-means 実装については知りません。通常、これらはランダムに選択されます。(この初期化を行う k-means の独自の実装を作成する ことはできませんか?単純にオープンソースの実装を使用して引数を追加します)

ただし、 kmeans の python sklearn 実装には、最初の中心を配列として渡すことができるkmeans++実装があります。

init : {‘k-means++’, ‘random’ or an ndarray}

    Method for initialization, defaults to ‘k-means++’:

    ‘k-means++’ : selects initial cluster centers for k-mean clustering 
     in a smart way to speed up convergence. 
     ...
     If an ndarray is passed, it should be of shape 
     (n_clusters, n_features) and gives the initial centers.

ただし、使用していません。

そして、 kmeans ++を思い出したり調べたりする前に、これを書きました:

これは貧乏人のアプローチです。

PSO アルゴリズム (それが何をしたとしても) によって与えられたリスト/配列の長さにk 等しいパラメーターを使用して、kmeans を実行できます。

その後、kmeans は自身の重心をすばやく見つけます。これを数回行います。異なる距離尺度 (ユークリッド、マンハッタン、最短、最長、平均など) を使用し、乱数ジェネレーターのシードを変更します。その後、毎回、k-means 重心の座標を PSO 重心の座標と比較します。

ほぼ1 対 1 の対応がある場合(要件によって異なります)、一致が見つかりました。次に、k-means 分類結果のリストで何かを行います。

于 2015-05-24T09:13:41.660 に答える