0

R でsparclパッケージを使用して R でスパース階層クラスタリングを実行しているときに、データのクラスター ラベルを取得できませんでした。ヘルプ ドキュメントには、次のコードがあります。

# Generate 2-class data
set.seed(1)
x <- matrix(rnorm(100*50),ncol=50)
y <- c(rep(1,50),rep(2,50))
x[y==1,1:25] <- x[y==1,1:25]+2

# Do tuning parameter selection for sparse hierarchical clustering
perm.out <- HierarchicalSparseCluster.permute(x, wbounds=c(1.5,2:6), nperms = 5)

# Perform sparse hierarchical clustering
sparsehc <- HierarchicalSparseCluster(dists=perm.out$dists,
wbound=perm.out$bestw, method="complete")

さて、オブジェクトsparsehcからクラスタ ラベルを取得するにはどうすればよいですか?

Kmeans には、単純な属性「cs」が作成されています。例えば。

## Choosing tuning parameters
km.perm <- KMeansSparseCluster.permute(data_mat, K = 10, wbounds= seq(3,7, len =
20),     nperms=5)

## Performing kmean sparce clustring 
sparse_data_clus <- KMeansSparseCluster(data_mat, K = 10, wbounds= km.perm$bestw)
clusterlabel <- sparse_data_clus[[1]]$Cs

HierarchicalSparseCluster()で同様のラベルを取得するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

階層的クラスタリングは通常、厳密なパーティショニングではなく、デンドログラム(つまり、単一の要素が下部にあり、完全なデータ セットが上部にあるクラスターの階層) を返します。

厳密なパーティショニング (通常の k-means によって生成されるものなど) が必要な場合は、この階層からそのようなパーティショニングを抽出する必要があります。これを行うには多くの方法がありますが、最も簡単なのはしきい値レベルを使用することです。

私は R をあまり (遅すぎて) あまり使用しないので、ここで詳細を説明することはできません。をご覧ください?cutree

于 2013-05-20T10:05:35.253 に答える
0

これに応答するのは少し遅いですが、私は同じ問題を抱えていました。これが私のために働いたものです:

set.seed(1)
x <- matrix(rnorm(100*50),ncol=50)
y <- c(rep(1,50),rep(2,50))
x[y==1,1:25] <- x[y==1,1:25]+2
data_mat <- x

作成した行列で順列を行います

hier.perm <- HierarchicalSparseCluster.permute(data_mat, 
                                               wbounds= seq(3,7, len = 20),
                                               nperms=5)

HierarchicalSparse結果を実行する

hier.sparse <- HierarchicalSparseCluster(dists=hier.perm$dists, 
                                         wbound=hier.perm$bestw,
                                         method='complete')

前の行hclustの値で実行し、必要に応じて分割するために使用します$ucutree

cluster = hclust(dist(hier.sparse$u))    
cutree(cluster,3)
于 2014-10-22T00:53:25.053 に答える