2016-12-27 10 views
-1

私はk-平均クラスター化を行い、両方とも3つのクラス(1,2,3)を持つトレーニングデータに基づいてテストデータを分類したいと考えています。k-平均クラスター化のテストデータ分類

クラスターサイズを使用してテストデータセットを分類するにはどうすればよいですか? kmeansでk = 10(Matlabなど)ですか?私はk = 3を持つことができることを知っていますし、最も近い隣のクラスを使ってデータを識別するために最近隣を使用します。これらの10個のクラスタのそれぞれにどのようにラベル付けしますか?

ありがとう

+0

なぜこれはk = 10クラスタでは機能しませんか? –

答えて

0

ここではわかっていることの概要を説明していますが、正確に何をしたいのかは少し不明です。

データをクラスタ化する場合は、クラスタリングを使用してデータから洞察を得るか、または前処理に使用するかのいずれかとして、ラベルは理想的には存在しません。

クラスタリングを実行し、クラスターセンターの近くに基づいてクラスIDを新しいデータポイントに割り当てる場合は、次の操作を実行できます。

まず、ブートストラップやその他の方法でkを選択します。多分シルエット係数を使用します。クラスタセンターを取得したら、新しいデータポイントに最も近いセンターを確認し、それに応じてクラスIDを割り当てます。

このような場合は、Rand IndexまたはAdjusted Rand Indexを使用してクラスタの品質を向上させることができます。

1

10クラスタの分類は3クラスタの分類と変わりありません。 k-meansによって与えられるクラスタの数は、データ内の「クラス」の数とは無関係です。 k-meansは監督されていない学習アルゴリズムであり、訓練中の訓練データのクラスを考慮しないことを意味する。

アルゴリズムは次のようになります。私たちはクラスタ中心と我々のテスト・ポイント間の最短距離でクラスタを見つける

distances = dist(test_point, cluster_centers) 
cluster = clusters[ min(distances) ] 
class = mode(cluster.class) 

は、その後、我々はその中に含まれる元素のうち、最も一般的なクラスラベルを見つけます最小距離のクラスター。

関連する問題