r语言聚类分析_R语言实现tSNE聚类分析

3b2062b64552b5b0c2569cfde7c3e4c0.gif

t-SNE(t-distributed stochastic neighborembedding)是用于降维的一种无监督机器学习算法,由 Laurens van der Maaten 和 Geoffrey Hinton在08年提出。t-SNE 作为一种非线性降维算法,非常适用于高维数据降维到2维或者3维,便于进行可视化。与PCA比较就可以很显然的看出,经过PCA处理过后的结果能够得知每一个成分的方差贡献度(解释方差),然后t-SNE仅仅是基于相似度进行判定,没办法从其结果推断类似的信息。

接下来我们看下在R中的实现过程,首先我们需要安装包Rtsne。

install.packages("Rtsne")

我们直接看下实例:

library(Rtsne)#数据的载入iris_unique # 去除重复的值iris_matrix as.matrix(iris_unique[,X ##如果数据属性差异太大
##运行模型set.seed(42)#保证数据结果一致性tsne_out FALSE,perplexity=plot(tsne_out$Y,col=iris_unique$Species,asp=1)

r语言聚类分析_R语言实现tSNE聚类分析_第1张图片

###标准化后tsne_out plot(tsne_out$Y,col=iris_unique$Species,asp=1)

r语言聚类分析_R语言实现tSNE聚类分析_第2张图片

当然,为了更加的美观,我们可以借助ggplot2包绘制结果。

library(ggplot2)tsne_plot <- data.frame(x =tsne_out$Y[,1], y = tsne_out$Y[,2], col = iris_unique$Species)ggplot(tsne_plot) + geom_point(aes(x=x,y=y, color=col))

r语言聚类分析_R语言实现tSNE聚类分析_第3张图片

欢迎学习交流!

r语言聚类分析_R语言实现tSNE聚类分析_第4张图片

r语言聚类分析_R语言实现tSNE聚类分析_第5张图片

你可能感兴趣的:(r语言聚类分析)