如何在 R 中生成 Kmeans 聚类图的成对图?
How to produce a pairwise plot of Kmeans clustering plots in R?
我在 R 中对 Iris 数据集执行 k 均值聚类分析。我正在尝试生成所有不同属性组合的成对图(Sepal.Length、Sepal.Width、Petal.Length 和 Petal.Width) 使用中心为 3 的 kmeans 聚类。我能够为第一个组合(萼片长度 v 萼片宽度)生成如下图:
attach(iris)
iris.scaled <- scale(iris[, -5])
k <- kmeans(iris.scaled,centers=3)
plot(iris.scaled[,1],iris.scaled[,2],col=KM$cluster,)
但是,我不确定如何对所有 6 种可能的属性组合执行此操作以及如何绘制 4 x 4 成对图。我想也许是 pairs
函数,但没有这样的运气
我提议:
library(GGally)
library(data.table)
attach(iris)
iris$Species <- NULL
iris.scaled <- data.table(scale(iris))
k <- kmeans(iris.scaled, centers=3)
iris.scaled[, cluster := as.factor(k$cluster)]
colnames(iris.scaled)
# ggplot(iris.scaled, aes(x = Sepal.Length, y = Sepal.Width)) +
# geom_point(aes(color = factor(cluster)))
ggpairs(iris.scaled, aes(colour = cluster, alpha = 0.4), columns = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width"))
编辑:
你也可以删除上面的图:
ggpairs(iris.scaled, aes(colour = cluster, alpha = 0.4),
columns = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width"),
upper = "blank",
diag = NULL)
我在 R 中对 Iris 数据集执行 k 均值聚类分析。我正在尝试生成所有不同属性组合的成对图(Sepal.Length、Sepal.Width、Petal.Length 和 Petal.Width) 使用中心为 3 的 kmeans 聚类。我能够为第一个组合(萼片长度 v 萼片宽度)生成如下图:
attach(iris)
iris.scaled <- scale(iris[, -5])
k <- kmeans(iris.scaled,centers=3)
plot(iris.scaled[,1],iris.scaled[,2],col=KM$cluster,)
但是,我不确定如何对所有 6 种可能的属性组合执行此操作以及如何绘制 4 x 4 成对图。我想也许是 pairs
函数,但没有这样的运气
我提议:
library(GGally)
library(data.table)
attach(iris)
iris$Species <- NULL
iris.scaled <- data.table(scale(iris))
k <- kmeans(iris.scaled, centers=3)
iris.scaled[, cluster := as.factor(k$cluster)]
colnames(iris.scaled)
# ggplot(iris.scaled, aes(x = Sepal.Length, y = Sepal.Width)) +
# geom_point(aes(color = factor(cluster)))
ggpairs(iris.scaled, aes(colour = cluster, alpha = 0.4), columns = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width"))
编辑:
你也可以删除上面的图:
ggpairs(iris.scaled, aes(colour = cluster, alpha = 0.4),
columns = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width"),
upper = "blank",
diag = NULL)