百科问答小站 logo
百科问答小站 font logo



t-sne数据可视化算法的作用是啥?为了降维还是认识数据? 第1页

  

user avatar   breaknever 网友的相关建议: 
      

拿我比较了解的无监督学习来说,t-SNE的一个用处是:通过视觉直观验证算法有效性,或者说是算法评估。因为在这种情况下数据没有标签,无法很好的验证结果。比如下面两幅图中,作者都使用了t-SNE来把高维数据压缩到2维空间上来证明算法的有效性。值得一提的是,t-SNE是少数可以同时考虑数据全局局部关系的算法,在很多聚类问题上的效果都不错。

而将tSNE直接用于降维,并后接分类器比较少见,我认为原因有:

  • 当我们意识到需要降维时,一般是发现了特征间的高度线性相关,而t-SNE主打的是非线性降维。如果我们发现了线性相关,可能用PCA处理就可以了。即使发现了“非线性相关性”,我们也不会尝试用t-SNE降维再搭配一个线性分类模型,而会直接选择非线性的分类模型去处理。复杂的非线性关系不适合强行降维再做分类,而应该用非线性模型直接处理。如果是高度稀疏的矩阵,也有适合的分类器直接用,也没必要降维。
  • 其次t-SNE的t指的是Student-t distribution,而一般t-SNE最多就是用于2维或者3维上可视化。我们知道一般的降维不仅仅是降维到2或者3个特征,而可能是从100降到20个特征之类的,在这种情况下可能要用更大的自由度(degree of freedom),效果还未知。
  • 其次是t-SNE的运算开销比较大 非线性,经过了优化的话可以达到 。同时t-SNE的代价函数非凸,可能得到局部最优。
  • t-SNE的核心思想就是保证在低维上数据的分布与原始特征空间的分布相似性高。而相似性度量是依赖于KL散度以及计算欧式距离并概率化。换句话说,它依然受到维度灾难的影响,如果在低维空间上本身不存在区分度或者高维空间中欧式距离差别很小的话,效果也不好。什么是维度灾难可以参考:微调:怎样理解 Curse of Dimensionality(维数灾难)?
  • t-SNE的调参比较复杂,尤其是perplexity这个参数的影响还是比较明显的,所以依赖于t-SNE来进行维度压缩并不容易有稳定结果。调参可以看:How to Use t-SNE Effectively

总体而言,t-SNE应该比较适合可视化,了解和验证数据或者模型。至于降维的话,还有很多局限性有待解决。遇到复杂数据,选用非线性的分类器可能效果更好。




  

相关话题

  如何把梯度传递过Argmax? 
  如何评价Hinton组的新工作SimCLR? 
  人们是如何想到奇异值分解的? 
  只有正样本和未标签数据的机器学习怎么做? 
  如何看待周志华等人的新书《机器学习理论导引》? 
  普通程序员如何正确学习人工智能方向的知识? 
  从今年校招来看,机器学习等算法岗位应届生超多,竞争激烈,未来 3-5 年机器学习相关就业会达到饱和吗? 
  推荐系统应该如何保障推荐的多样性? 
  为什么在R语言里多用<-而不是=表示赋值? 
  请问在金融风控方向,如何运用用户行为序列进行特征设计和挖掘? 

前一个讨论
在实现科技自立的路上,如何营造有利于科技创新的环境?
下一个讨论
如何看待「去到另一个城市的酒店吃外卖」这种旅行方式?





© 2025-01-22 - tinynew.org. All Rights Reserved.
© 2025-01-22 - tinynew.org. 保留所有权利