私は25人の顧客を持っています。各顧客には、システムのユーザーが多数います(例:顧客1は45人のユーザー、顧客2は46人のユーザー、顧客25は1000人のユーザーです。バケツに顧客を詰め込む
私は各顧客をバケットに入れておきたいと思います。バケットには、ほぼ同じ数のユーザーが含まれています。私は合計で5つのバケツが必要であることを知っています。
(ここでは、バケットはサーバーを表しています。サーバーのオーバーロードを防ぐために、サーバーあたりのユーザーの総数がほぼ等しい別のサーバーにクライアントを割り当てる必要があります。つまり、2つのサーバーで1つのクライアントを分割することはできません)。
バケットに顧客を配分するのに適した方法はありますか?いくつかのクラスタリング方法が効果的かもしれないと思っています。
これまで私が行ってきたことの一例として、私のRコードがあります:
#Create dataset
r <- data.frame(users=c(1000, 960, 920, 870, 850, 700, 600, 550, 520, 500, 420, 400, 390, 300, 210, 200, 160, 80, 70, 50, 49, 48, 47, 46, 45))
#Try kmeans clustering
fit <- kmeans(r, 5)
#get cluster means
aggregate(r, by=list(fit$cluster),FUN = mean)
#append cluster assignment
r <- data.frame(r,fit$cluster)
#Plot cluster
library(cluster)
clusplot(r, fit$cluster, color=TRUE, shade=TRUE, labels=2, lines=0)
library(fpc)
plotcluster(r, fit$cluster)
これは顧客をバケットにクラスタ化しますが、各バケット内のユーザー数はほぼ同じではありません。
私はRの問題としてこれをタグ付けしましたが、他のいくつかのパッケージでは簡単な解決策があるのなら、私は
私はこれが仕事をすると思います!私はあなたに帽子を捧げる。努力のためにそんなに感謝します:-) –
それは助けてくれてうれしいです。コメントありがとう。 –