如何在新数据集上得分

时间:2015-05-04 05:18:53

标签: r classification scoring

我们在R中建立了用于聚类的模型。我们现在希望为我们想要集群的新客户部署模型的等式。在SAS中,Cluster节点用于提供Clustering SAS代码,我们只需要插入新的输入变量。 在R中有办法做到这一点吗?我们如何导出Cluster方程?

使用标准虹膜数据集的示例如下所示。

irisnew <- iris
library("cluster", lib.loc="~/R/win-library/3.2")
(kc <- kmeans(irisnew, 3)) 

K-means clustering with 3 clusters of sizes 62, 38, 50

Cluster means:
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1     5.901613    2.748387     4.393548    1.433871
2     6.850000    3.073684     5.742105    2.071053
3     5.006000    3.428000     1.462000    0.246000

Clustering vector:
  [1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
 [39] 3 3 3 3 3 3 3 3 3 3 3 3 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [77] 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 2 1 2 2 2 2 2 2 1
[115] 1 2 2 2 2 1 2 1 2 1 2 2 1 1 2 2 2 2 2 1 2 2 2 2 1 2 2 2 1 2 2 2 1 2 2 1

Within cluster sum of squares by cluster:
[1] 39.82097 23.87947 15.15100
 (between_SS / total_SS =  88.4 %)

现在已经定义了Cluster,我有一个新的花瓣数据集,我需要根据上面的聚类规则进行分类。我的问题是我如何导出规则呢?通常,规则定义为

x = a1 * Sepal.Length + a2 * Sepal.Width +a3 * Petal.Length + a4 * Petal.Width + b
Then if x between z1 and z2 then Cluster1
else if x between z3 and z4 then Cluster2
else if x between z5 and z6 then Cluster3
else Cluster4

谢谢, 和Manish

1 个答案:

答案 0 :(得分:1)

对于通用模型使用 - predict.glm(glm.model,newdata = newdf))

对于群集使用 - Simple approach to assigning clusters for new data after k-means clustering