这个R包不太冷系列五——降维分析

2021-08-05 17:57:43, 多层组学定制服务 上海欧易生物医学科技有限公司


点击上方“蓝色字体”关注我们

鹿明

生物

蛋白、代谢组学服务专家

关注我们收获更多

关注







(点击的图片查看活动)

数据处理一直是科研工作者的重中之重,选用了合适的方法往往能带来事半功倍的效果。当拿到繁琐复杂的数据集,我们往往一筹莫展,面对数量庞大的数据集,对其进行全部保留分析显然是不现实的。不用怕,小鹿今天给大家介绍一个专门用来处理高维数据的秘密武器——R包UMAP用了它你就可以轻松进行降维分析,给数据来个“大瘦身”。


1

降维分析的定义


降维是指通过保留一些比较重要特征,去除一些冗余特征,从而减少数据特征维度的方法。而特征的重要性取决于该特征能够表达数据集的多少。一般情况下我们会先使用线性的降维方法再使用非线性的降维方法,从结果上去判断哪种方法比较合适。


【什么情况会用到降维?】
(1)特征维度很大,可能会导致过拟合;
(2)个别样本数据不足;
(3)特征间的相关性较大。


2

UMAP降维分析


UMAP建立在黎曼几何和代数拓扑理论框架上,不仅是新的降维流形学习技术,还是非常有效的可视化和可伸缩降维算法。在可视化质量方面,UMAP算法与t-SNE具有竞争优势,但它保留了更多全局结构,具有优越的运行性能,以及更好的可扩展性。此外UMAP对嵌入维数没有计算限制,这使得它可以作为机器学习的通用维数简约技术。


3

代码实现


我们首先进行数据预处理,再用处理后的数据进行可视化分析。


1.首先加载我们需要用到的包【umap】和【ggplot2】

library(umap)library(ggplot2)


2.使用umap函数对示例数据(鸢尾花数据集)进行UMAP降维分析

iris.umap = umap::umap(iris.data)


查看降维后的结果:


3.使用plot函数可视化UMAP的结果

plot(iris.umap$layout,col=iris.labels,pch=16,asp = 1,     xlab = "UMAP_1",ylab = "UMAP_2",     main = "A UMAP visualization of the iris dataset")
abline(h=0,v=0,lty=2,col="gray")
legend("topright",title = "Species",inset = 0.18,       legend = unique(iris.labels),pch=16,       col = unique(iris.labels))

复杂的umap降维分析就这样轻易的实现了,当然实现umap降维分析可不止这一种方法,还可以利用uwot包去实现。


1.第一步当然还是要加载包【uwot】和【ggplot2】包

library(ggplot2)library(uwot)


2. 第二步是使用uwot进行UMAP降维分析

iris_sumap <- uwot::umap(iris, n_neighbors = 15, min_dist = 0.001,                         y = iris$Species, target_weight = 0.5)

查看降维后的结果:


3.添加Species列到数据框中

iris_sumap_res <- data.frame(iris_sumap,Species=iris$Species)head(iris_sumap_res)


4.使用ggplot函数可视化UMAP的结果

ggplot(iris_sumap_res,aes(X1,X2,color=Species)) +   geom_point() + theme_bw() +   geom_hline(yintercept = 0,lty=2,col="red") +   geom_vline(xintercept = 0,lty=2,col="blue",lwd=1) +  theme(plot.title = element_text(hjust = 0.5)) +   labs(x="UMAP_1",y="UMAP_2",       title = "A UMAP visualization of the iris dataset")


3

结语

实践是检验真理的唯一标准

复现是学习R语言的最好办法

动动手操作起来吧~

今天小鹿为大家介绍了UMAP降维分析的原理及可视化,包括降维分析用法和应用场景,希望大家能够好好利用起来,在进行大数据处理的时候发挥优势!


文末看点 鹿明生物

上海鹿明生物科技有限公司多年来,一直专注于生命科学和生命技术领域,是国内早期开展以蛋白组和代谢组为基础的多层组学整合实验与分析的团队。

同时,鹿明生物线上学习平台易明学院也拥有众多生信教程,欢迎访问:https://www.yimingxueyuan.com/


猜你还想看



生信课程:这个R包不太冷系列四:数据处理不可错过的dplyr

生信课程:手把手教你如何从iprox上自动批量下载原始数据

生信课程:这个分析不太难系列(一)——方差分析

生信课程:一行代码,轻松绘制动态关系网络图(Jaal 库)

生信课程:这个R包不太冷系列三:一种“简单代码+简单调整=即刻出图”的包

生信课程:我要如何才能拯救你!我的论文!我的实验数据!

生信分析—文献管理神器常被文献编排整奔溃?试试这款文献管理神器,让您的效率MAX

生信分析—数据库获取:如何快速从主流数据库中获取人/小鼠数据?

生信分析—可视化处理工具你可以更美一些:SnapGene Viewer软件序列可视化操作

云平台:奥利给~~代谢通路富集分析原来还可以这么做?

云平台:震惊!他花了3分钟就完成了我三个周的工作!

云平台:欧易/鹿明云 | 免费的聚类热图不试试吗?


END

森淼 撰文

欢迎转发到朋友圈

本文系鹿明生物原创

转载请注明本文转自鹿明生物

我知道你在看

点“阅读原文”了解更多


  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018
  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018

Copyright ©2007-2024 ANTPEDIA, All Rights Reserved