前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tSNE可视化

tSNE可视化

原创
作者头像
爱学习的小明明
修改2020-10-09 15:35:54
1.5K0
修改2020-10-09 15:35:54
举报
文章被收录于专栏:R语言学习R语言学习

t-SNE是一种用于探索高维数据的非线性降维算法,非常适合将高维数据降到二维或者三维,在使用散点图等基本图表进行可视化。PCA是一种线性算法,他不能解释特征之间的复杂多项式关系,而t-SNE基于在领域图上随机游走的概率分布来找到数据内的结构。

SNE通过仿射变换将数据映射到概率分布上,主要包括两个步骤:

1)SNE构建一个高维数据之间的概率分布图,使得相似的对象有更高的概率被选择,而不相似的对象有较低的概率被选择。

2)SNE在低维空间构建这些点的概率分布,使得这两个概率之间尽可能的相似。

t-SNE的不足之处

1)t-SNE倾向于保存局部特征,对于维度很高的数据集是不可能完全映射到二维和三维空间的。

2)t-SNE没有唯一最优解,且没有预估部分。

绘制t-SNE图

R中Rtsne包Rtsne()函数能够实现对数据降维,结合geom_point()实现可视化

library(Rtsne) # Load package

library(ggplot2)

library(RColorBrewer)

iris_unique <- unique(iris) # Remove duplicates

set.seed(42) # Sets seed for reproducibility

tsne_out <- Rtsne(as.matrix(iris_unique[,1:4])) # Run TSNE

mydata<-data.frame(tsne_out$Y,iris_unique$Species) #tsne_out$Y保存这散点图的二维坐标

colnames(mydata)<-c("t_DistributedY1","t_DistributedY2","Group")

ggplot(mydata,aes(x=t_DistributedY1,y=t_DistributedY2,fill=Group))+

geom_point(shape=21,size=4,color="black",alpha=0.7)+

scale_fill_manual(values=c("#00AFBB", "#FC4E07","#E7B800","#2E9FDF"))+

theme_minimal()

theme(

text=element_text(size=12,face="plain",color="black"),

axis.title=element_text(size=11,face="plain",color="black"),

axis.text = element_text(size=10,face="plain",color="black"),

legend.title = element_text(size=11,face="plain",color="black"),

legend.text = element_text(size=11,face="plain",color="black"),

legend.position=c(0.83,0.15)

)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SNE通过仿射变换将数据映射到概率分布上,主要包括两个步骤:
  • t-SNE的不足之处
  • 绘制t-SNE图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档