非负因子分解工具箱。

nn-fac的Python项目详细描述


非负因子分解技术

用于计算一些非负因式分解的Python代码,使用层次交替最小二乘算法(HALS)的加速版本,解决非负最小二乘问题(NNLS)[1]。在

这项工作是在我的研究硕士(SIF,master.irisa.fr)在BERTIN Nancy和COHEN Jeremy的指导下,在IRISA/Inria Rennes巴拿马团队实习。在

在我的博士学位期间,我在同一个团队中得到了扩展,由BERTIN Nancy、COHEN Jeremy和BIMBOT Frederic指导。在

目录

NNLS公司

此工具箱包含NNLS解析算法,如[1]中所述开发。这段代码是基于cohenjeremy python代码改编的GILLIS Nicolas MatLab代码。在

此工具箱还包含4种因子分解方法:

NMF公司

非负矩阵分解[2]—非负矩阵X在两个非负矩阵W和H中的因式分解,其中WH接近X

通过NNLS最小化矩阵X和WH之间的Frobenius范数来解决这一问题。在

非副fac

非负张量因式分解,也称为非负旁分解。并行分解是将一个张量T分解成秩1张量之和的因子[3]。通过沿着这个和的每个模式连接向量,我们可以得到与张量的模式数一样多的因子[4]。此算法返回这些因子。在

这种因式分解是作为ALS算法计算的,如[5]所述,用NNLS求解,并使用工具箱张量地[6]。它返回非负张量T的非负因子

非负副作用2

非负张量因式分解允许因子的可变性[7]。更准确地说,这个实现的版本基于一种灵活的耦合方法[8],其中耦合是通过惩罚项来强制执行的。在

非负Tucker分解

非负Tucker分解,它包括因子中的张量T(每个模式一个)和一个核张量(通常比T小),它将所有因子线性联系起来[5]。这个算法返回这些因子和这个核心张量。在

这种因式分解是作为ALS算法计算的,如[5]所述,用NNLS求解,并使用工具箱张量地[6]。它还对核心使用渐变更新规则。在

参考文献

[1]N.Gillis和F.Glineur,“非负矩阵分解的加速乘法更新和分层ALS算法”,神经计算24(4):1085-11052012。在

[2]D.D.Lee和H.S.Seung,“通过非负矩阵分解学习对象的部分”,《自然》,第401卷,第6755号,第7881999页。在

[3]R.A Harshman等人,《PARAFAC程序的基础:解释性多模态因子分析的模型和条件》,1970年。在

[4]J.E.Cohen和N.Gillis,“基于字典的张量正则多元分解”,IEEE信号处理汇刊,66(7),1876-1889,2017年。在

[5]T.G.Kolda和B.W.Bader,“张量分解和应用”,暹罗评论,51(3),455-5002009。在

[6]J.Kossaifi,Y.Panagakis,A.Anandkumar和M.Pantic,“TensorLy:Python中的张量学习”,机器学习研究杂志(JMLR),第20卷,第26期,2019年。在

[7]R.A Harshman,“PARAFAC2:数学和技术注释”,加州大学洛杉矶分校语音工作论文22.30441972年。在

[8]J.E Cohen和R.Bro,“非负并行:一种灵活的耦合方法”,潜在变量分析和信号分离国际会议。斯普林格。2018在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向第二个组合框模型项添加数组值从第一个组合框所选项获取数组名称?   使用Java与WebSphere的SSL握手错误   eclipse线程“main”Java中的第一个Java程序异常。lang.NoClassDefFoundError   java将Javafx应用作为Web应用移植的最佳方式   IDE的java右JVM文件夹   java如何在基本适配器中停止文本到语音   java If block使用substring和equals方法以假值执行   在本例中,如何在java中返回多个值?   java第二个主类在maven构建期间覆盖第一个主类   如何在java中设置运行时ArrayList的泛型类型?   java从主机读取文件