非负矩阵分解NMF简介
本文整理NMF相关知识。
简介
非负矩阵分解(Nonnegative Matrix Factorization),简称NMF,是由Lee和Seung于1999年在自然杂志上提出的一种矩阵分解方法,它使分解后的所有分量均为非负值(要求纯加性的描述),并且同时实现非线性的维数约减。NMF已逐渐成为信号处理、生物医学工程、模式识别、计算机视觉和图像工程等研究领域中最受欢迎的多维数据处理工具之一。
如果X是一个nxp非负矩阵,NMF就是找到两个矩阵W和H,使得
W、H是n×r和r×p的非负矩阵。在实践中,因式分解的rank(级别)通常被选择为r<<min(n, p),其目的是为了将X中包含的信息分成r个因子,也就是W的列。不同领域中矩阵W的名称不同,比如基础图像,元基因,源信号等,而矩阵H可能会称为混合系数矩阵和元基因表达系数等。
算法
可以通过普通的梯度下降法(SGD),或根据Lee和Seung文章提出的multiplicative update的规则进行计算获取矩阵W和H。
参见: https://zhuanlan.zhihu.com/p/116846017
除此之外,R的NMF包内置的算法就有11种之多,(综述Berry2007; Chu2004)。其中默认是brunet,可使用nmfAlgorithm()设定算法。
大部分算法由C++执行,也可以选用R执行的版本。
并且可以将算法做成list,对比各种算法的表现。
nmf.res.multi.method <- nmf(nmf.input, rank2use,list('brunet', 'lee', 'ns'), seed=seed2use)
compare(nmf.res.multi.method)
除了内置的算法,NMF包还允许接入其他NMF算法,例如projective NMF(PNMF)
remotes::install_github("richardbeare/pNMF")
library(NMF)
setNMFMethod("PNMF", pNMF::PNMF)
与NMF相比,PNMF算法将H进一步分解,生成一个更稀疏的矩阵,有利于特征提取和聚类(Ball et al HBM2017)。
模型表现
问题一:如何选择rank数目?
相关指标的解释,来自于NMF相关函数说明。
非负矩阵分解NMF简介相关推荐
- 文本主题模型之非负矩阵分解(NMF)
1. 非负矩阵分解(NMF)概述 非负矩阵分解(non-negative matrix factorization,以下简称NMF)是一种非常常用的矩阵分解方法,它可以适用于很多领域,比如图像特征识别 ...
- 【机器学习】(十七)非负矩阵分解NMF:人脸图像特征提取、用特征排序;还原混合信号
非负矩阵分解(NMF)是一种无监督学习算法,目的在于提取有用的特征(可以识别出组合成数据的原始分量),也可以用于降维,通常不用于对数据进行重建或者编码. 与PCA相同,NMF将每个数据点写成一些分量的 ...
- 非负矩阵分解NMF(1): 非调包python实现
文章目录 1. 矩阵分解(Matrix Factorization): 1.1 公式推导 1.2 代码实现 1.3 在图像数据下的效果 2. 非负矩阵分解(Non-negative Matrix Fa ...
- 详解非负矩阵分解(NMF)及其在脑科学中的应用
非负矩阵分解及其在脑科学中的应用 基本原理 确定最优因子数量 代码实现 非负矩阵分解与主成分分析的区别 非负矩阵分解在脑科学中的应用 应用一:神经发育模式:T2w/T1w比值映射的非负矩阵分解(NMF ...
- 推荐算法——非负矩阵分解(NMF)
1. 矩阵分解回顾 在博文推荐算法--基于矩阵分解的推荐算法中,提到了将用户-商品矩阵进行分解,从而实现对未打分项进行打分.矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积.对于上述的用户-商品矩阵 ...
- Non-Negative Matrix Factorization 非负矩阵分解(NMF)
Non-Negative Matrix Factorization 非负矩阵分解(NMF) 简介及基本思想 1999年由D.D.Lee和H.S.Seung提出的新的矩阵分解思想,在矩阵中所有元素均为非 ...
- NMF非负矩阵分解初探
NMF非负矩阵分解初探 NMF非负矩阵分解初探 简介 NMF信号分解 最优化问题NMF 简介 数据可以表示为一个矩阵 VVV,列 vn" role="presentation&qu ...
- 机器学习笔记:非负矩阵分解问题 NMF
1 NMF介绍 NMF(Non-negative matrix factorization),即对于任意给定的一个非负矩阵V,其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件V=W*H,从而将一个 ...
- 推荐系统笔记:基于非负矩阵分解的协同过滤
1 非负矩阵分解 非负矩阵分解 (NMF) 可用于非负的评级矩阵. 这种方法的主要优势不一定是准确性,而是它在理解用户-项目交互方面提供的高度可解释性. 与其他形式的矩阵分解的主要区别在于因子 U 和 ...
- 大数据聚类分析用于预测_多模态数据中的非负矩阵分解用于分割和标签预测
引用 Akata Z, Thurau C, Bauckhage C. Non-negative matrix factorization in multimodality data for segme ...
最新文章
- oracle 内存分配和调优 总结
- vue中数组长度_vue.js - 如何获得动态数组的数组长度 - SO中文参考 - www.soinside.com...
- [TCP/IP] SSL的通讯原理
- 沉淀再出发:PHP的中级内容
- java爬虫 京东_java爬虫webmagic 案例爬取动态(ajax+js) 网站京东售价格
- String通过“+”号拼接字符串的底层实现
- 2017 Multi-University Training Contest - Team 5:1001. Rikka with Candies(手写bitset)
- django 已登陆用户的权限问题
- C程序设计--对文件的输入输出(案例)
- C#开发DIY照片书软件(C#图形图像开发)
- python导入鸢尾花数据集_python KNN算法实现鸢尾花数据集分类
- 朴素贝叶斯,拉普拉斯平滑
- m序列的产生原理及其性质
- 《持续集成实践指南》第3章 Gitlab基本配置与使用
- memcached入门使用
- 棋牌游戏“拖拉机”牌型提取
- 几种可视化数据分析图表的使用
- JS 如何清除页面缓存
- 最新技术栈Vue3+TS基于唯杰地图开发的CAD云端图纸管理平台案例代码开源了
- Git最佳实践(init、config、status、add、commit、diff、push) 1.0v