我有25位顧客。每個客戶都有我們系統的許多用戶,例如客戶1有45個用戶,客戶2有46個用戶...客戶25有1000個用戶。將顧客包裝成水桶
我想將每個客戶分成一個存儲桶,其中每個存儲桶包含大致相同數量的用戶。我知道我總共需要5桶。
(這裏的桶代表服務器,我想分配我的客戶端到不同的服務器,每個服務器的用戶總數大致相等,以防止服務器過載.1客戶端必須在同一臺服務器上即不能拆分1個客戶端超過2個服務器)
任何想法分配客戶桶適當的方法?我認爲一些聚類方法可能工作(我嘗試使用R的kmeans),但我似乎不能找到方法規定每個羣集中的用戶總數大致相同
這是我的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問題,但如果有其他一些包裝簡單的解決方案,我:-)
我認爲這可以做這份工作!我向你傾訴我的帽子。非常感謝你的努力:-) –
很高興知道它的幫助。感謝您的評論。 –