假如我们测了 2700 个单细胞 , 人的参考基因组注释出了 30000 个基因的话 , 那么我们的表达矩阵应该是
文章插图
的十分稀少的矩阵 。 我们但愿能在二维的坐标图中 , 尽可能的展示出细胞类型的信息 , 而且能区分出分歧的细胞类型 。 转化为两个子问题 , 那就是 , 高维矩阵降维 , 以及高维数据聚类的问题 。 这中心有很多巧妙的算法 。 在实践中 , 高维矩阵降维我们常用的是 PCA , t-SNE , UMAP 等算法 , 而聚类的话 , 我们会用条理聚类以及 Louvain Algorithm 之类的图聚类算法 , 对每个细胞对应的高维标的目的量进行聚类;
我们可以看看具体的
, 这是 PCA 的成果 , 我们看到 , 细胞似乎能分为 4 个分歧的大类 ;
文章插图
我们用非线性的降维方式 t-SNE , 将这些细胞在二维的投影上分的更开 , 而且用 Louvain Algorithm , 进行聚类 , 将聚类标签 , 用分歧颜色展示出来;
文章插图
若是连系先验常识 , 查看每个类别对应细胞的差别表达基因 , 我们可以对每个类别进行注释 , 最终我们可以获得下面的这个成果:
文章插图
此外 , 还可以将 PCA 以及 t-SNE 纳入到流形进修的框架里 , 有学者提出了 UMAP 算法 , 可以或许更好的可视化 , 降维与聚类成果 。
文章插图
PCA , t-SNE , 以及 UMAP 这些统计进修里的高级算法背后离不开矩阵阐发和泛函阐发(可以将其视为函数版本的线性代数)的相关理论 , 其策略就是界说怀抱空间以及范数 , 这里就不再做深切介绍了 。 只列出参考文献:
PCA 的介绍可见李航的《统计进修方式》;
t-SNE 道理以及代码实现见https://lvdmaaten.github.io/tsne/
【线性代数到底应该怎么学?】UMAP 论文以及代码实现见https://github.com/lmcinnes/umap
以上内容就是线性代数到底应该怎么学?的内容啦 , 希望对你有所帮助哦!
推荐阅读
- 到底有没有完美的家庭?
- 应该怎样写歌词
- 保质期≠最后可食用时间,食品过期到底能不能吃呢?
- 扔学士帽时都应该注意哪些事情?
- 同伴被大型动物攻击受伤应该怎么办?
- 小额借贷都应该哪些事情?
- 旅行结婚时都应该注意哪些事情?
- 驾车遇险应该怎么急救
- 意外烧伤眉毛应该怎么办?
- 修眉毛时都应该注意哪些事情?