2015-01-06 1 views
5

階層型クラスタまたはk-meansクラスタの作成に関する多くの情報があるようです。しかし、私は、ほぼ等しいサイズのK個のクラスタを作成するRの解があるかどうかを知りたいと思います。そこにいくつかのものは、そこに他の言語でこれを行うことについてですが、私はR.Rには、ほぼ等しいサイズのクラスタを作成するアルゴリズムがあります

で結果を達成するための方法を提案し、インターネット上の検索から何かを見つけることができていない例は以下のようになり

set.seed(123) 
df <- matrix(rnorm(100*5), nrow=100) 
km <- kmeans(df, 10) 
print(sapply(1:10, function(n) sum(km$cluster==n))) 

[1] 14 12 4 13 16 6 8 7 13 7 

になり は

私は、理想的には見たい

[1] 10 10 10 10 10 10 10 10 10 10 
+0

私ができることは、クラスタ関連のパッケージの包括的な一覧についてはhttp://cran.r-project.org/web/views/Cluster.htmlを参照してください。私はその問題に精通した誰かがあなたのために特別な提案を持っていることを願っています。 – flodel

+0

私はワードクラスター化がもっと等しいサイズのクラスターを生み出すと信じています。 'hclust(d、method =" ward.D ")'または 'hclust(d、method =" ward.D2 ")で遊んでみてください。 – JasonAizkalns

+0

あなたにflodelとjaysuniceありがとうございました。 Jaysunice、私は明日それを調べます。 – Graeme

答えて

-2

あなたが求めているものを完全に明確ではない。その、しかしRのランダムデータを生成することは非常に簡単にあなたのデータセットは、あなたがこのような何かを行うことができ、二次元がある場合 - これは全体の正規分布する乱数データを生成

cluster1 = data.frame(x = rnorm(100, mean=5,sd=1), y = rnorm(100, mean=5,sd=1)) 
cluster2 = data.frame(x = rnorm(100, mean=15,sd=1), y = rnorm(100, mean=15,sd=1)) 

をxとyは各クラスタの100データポイントです。私が主張するだろう

plot(cluster1, xlim = c(0,25), ylim = c(0,25)) 
lines(cluster2, type = "p")! 
+1

私はあなたがクラスタリングの分析が分かっているとは思いません。 200ポイントのデータを想像すると、OPはポイントをそれぞれ100の2つのクラスターにラベル付けするプロセスが必要です。 – flodel

+0

私は...何らかの理由でクラスタリング分析を行うためのデータを生成したいと思っていました。 – DG1

0

あなたがないことを、最初の場所で -

は、その後、それを表示します。どうして?あなたのデータの中に自然によく形成されたクラスタがある場合には、例えば、

plot(matrix(c(sample(1:10,10),sample(30:40, 7), sample(80:90,9)), ncol=2, byrow = F)) 

は、これらは(;良いのkを選択する方法についてthis comprehensive answerを参照してくださいkは、クラスタの天然Nに等しいと仮定して)とにかく一緒にクラスター化されます。それらのサイズが均一であれば、サイズが同じ大きさのクラスタが作成されます。そうでない場合、均一なクラスタサイズを強制すると、確実にクラスタリングソリューションの適性が低下します。 あなたのデータに自然にかなりのクラスタ、例えば、

plot(matrix(c(sample(1:100, 100), ncol=2))) 

をお持ちでない場合は、クラスタサイズを強制すると、データが完全にランダムである場合(クラスタサイズは同じ〜になる冗長のどちらかになります - しかし、そこ

plot(matrix(c(sample(1:15,15),sample(20:100, 11)), ncol=2, byrow = T)) 

は、強制的にサイズがほぼ確実に彼らを破るだろう、例えば、いくつかの素晴らしいクラスタがそこに存在する場合、クラスタリングにおける多くのポイントは)とにかくではない、または。

しかし、JasonAizkalnsのコメントに記載されているWardの方法は、たとえばシングルリンクと比較してより丸い形状のクラスタを提供するので、移動する方法があります(help(hclust)のD D2、それは恣意的ではありません)。

+0

(-1)質問に答えません。等しくm回サンプリングされたn個の混合信号からのデータがあるとします。同じサイズのクラスタにデータをクラスタ化することもできます。 –

関連する問題