如何在新数据集上评分
How to Score on a new Data Set
我们已经在 R 中构建了用于聚类的模型。我们现在希望为我们想要聚类的新客户部署模型方程。在 SAS 中,Cluster 节点用于提供 Clustering SAS 代码,我们只需插入新的输入变量即可。
有没有办法在 R 中做到这一点?我们如何导出聚类方程?
下面是使用标准鸢尾花数据集的示例。
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 %)
既然定义了聚类,我就有了一个新的花瓣数据集,需要根据上述聚类规则对其进行分类。我的问题是我如何导出规则呢?通常规则定义为
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
谢谢,
马尼什
对于通用模型使用 - predict.glm(glm.model, newdata = newdf))
用于聚类 - Simple approach to assigning clusters for new data after k-means clustering
我们已经在 R 中构建了用于聚类的模型。我们现在希望为我们想要聚类的新客户部署模型方程。在 SAS 中,Cluster 节点用于提供 Clustering SAS 代码,我们只需插入新的输入变量即可。 有没有办法在 R 中做到这一点?我们如何导出聚类方程?
下面是使用标准鸢尾花数据集的示例。
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 %)
既然定义了聚类,我就有了一个新的花瓣数据集,需要根据上述聚类规则对其进行分类。我的问题是我如何导出规则呢?通常规则定义为
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
谢谢, 马尼什
对于通用模型使用 - predict.glm(glm.model, newdata = newdf))
用于聚类 - Simple approach to assigning clusters for new data after k-means clustering