在 r 中将 6-D 绘制为 2-D
Plot 6-D into 2-D in r
如何在 2 维的图中绘制 6 维的数据集。
我有一个包含 6 个属性和超过 1000 行的数据集,我将其用于 k-means 聚类。
现在我想在执行聚类后可视化数据。有人可以给我任何关于如何处理这个问题的提示吗?谢谢。
pairs()
可能会有用。
设置数据(非结构化,因为这样更容易):
set.seed(101)
x <- rnorm(6000,nrow=6)
clust <- sample(1:5,size=1000,replace=TRUE)
现在绘图(gap=FALSE
是装饰性的;pch="."
使大型数据集的绘图速度更快):
pairs(x,gap=FALSE,col=clust,pch=".")
这只会向您显示二维切片(即,您可能会以这种方式错过数据中的高维结构),但总比没有好。如果你真的想可视化高维结构,你可以尝试 rggobi ...
最简单的方法是使用 PCA 将数据的维度降低到 2 或 3 维。 k 均值聚类应该为数据的每一行分配一个组,以便您可以轻松地在缩减数据集上绘制不同的组。这是执行 PCA 的简单方法,但您也可以执行 LLE 或其他形式的降维。
data(iris)
unique(iris$Species)
#[1] setosa versicolor virginica
iris.pca<-princomp(iris[,c("Sepal.Length", "Sepal.Width", "Petal.Width", "Petal.Width")], center=T, scale=T)
plot(iris.pca$scores[,1], iris.pca$scores[,2], col=iris$Species)
如何在 2 维的图中绘制 6 维的数据集。
我有一个包含 6 个属性和超过 1000 行的数据集,我将其用于 k-means 聚类。
现在我想在执行聚类后可视化数据。有人可以给我任何关于如何处理这个问题的提示吗?谢谢。
pairs()
可能会有用。
设置数据(非结构化,因为这样更容易):
set.seed(101)
x <- rnorm(6000,nrow=6)
clust <- sample(1:5,size=1000,replace=TRUE)
现在绘图(gap=FALSE
是装饰性的;pch="."
使大型数据集的绘图速度更快):
pairs(x,gap=FALSE,col=clust,pch=".")
这只会向您显示二维切片(即,您可能会以这种方式错过数据中的高维结构),但总比没有好。如果你真的想可视化高维结构,你可以尝试 rggobi ...
最简单的方法是使用 PCA 将数据的维度降低到 2 或 3 维。 k 均值聚类应该为数据的每一行分配一个组,以便您可以轻松地在缩减数据集上绘制不同的组。这是执行 PCA 的简单方法,但您也可以执行 LLE 或其他形式的降维。
data(iris)
unique(iris$Species)
#[1] setosa versicolor virginica
iris.pca<-princomp(iris[,c("Sepal.Length", "Sepal.Width", "Petal.Width", "Petal.Width")], center=T, scale=T)
plot(iris.pca$scores[,1], iris.pca$scores[,2], col=iris$Species)