赞
踩
t-SNE是常见的一种聚类方法,用于数值型变量的降维与聚类可视化。在生物信息、医疗等领域得到广泛应用。其主要思想是将高维分布点的距离,用条件概率来表示相似性。
下面直接上t-SNE聚类的R代码。
#首先安装Rtsne R包
install.packages(“Rtsne”)
library(“Rtsne”)
#导入数据集
data <- read.csv("data",header = T)
cl <- data.frame()
#查看不同困惑度x下的t-SNE聚类效果
for (i in 1:50) {
set.seed(i)
tsne_i <- Rtsne(data, dims = 2, perplexity=i, verbose=F, pca = T, max_iter = 500,check_duplicates = F)
set.seed(i)
#用K-means进行二次聚类,设定K-means簇的个数为10
cl_i <- kmeans(tsne_i$Y, centers = 10, nstart = 3,algorithm="Lloyd") # k = 10
#将聚类结果存为PNG图片格式,大小为800*600
png(file = paste("path",1,"tsne_kmeans.png"),width = 800, height = 600)
plot(tsne_i$Y, t = "n")
#以数据标签来显示聚类结果,以不同颜色区分簇
text(tsne_i$Y,labels=row.names(data),font =1, cex = 0.8,col = cl_i$cluster)
dev.off()
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。