1. 程式人生 > >三、降維——PCA, 3d視覺化以及R聚類

三、降維——PCA, 3d視覺化以及R聚類

匯入資料

資料使用的是iris資料包:

data(iris)
iris$Species <- factor(iris$Species, levels = c("Versicolor", "virginica", "setosa"))

可以使用head(iris)來檢視資料情況。

可以簡單看看資料的擬合情況:

round(cor(iris[,1:4]),2

主成分分析PCA

pca <- princomp(iris[,1:4], cor=TRUE, scores=TRUE)//選擇研究correlation
2

通過summary(pc)可以檢視計算結果
繪製結果:

plot(pc, type="lines")
biplot(pc)

3D視覺化

要想進行3D的研究,可以選擇使用rgl包,如果沒有的話可以使用install.packages(“rgl”)進行安裝

具體實現:

library(rgl)
plot3d(pc$scores[,1:3],col=iris$Species)

text3d(pc$scores[,1:3],texts=rownames(iris))
text3d(pc$loadings[,1:3], texts=rownames(pc$loadings), col="red")
coords <- NULL
for (i in 1:nrow(pc$loadings)) {
  coords <- rbind(coords, rbind(c(0,0,0),pc$loadings[i,1:3]))
}
lines3d(coords, col="red", lwd=4)

然後就大功告成了~!!!