#30524·scikit-learn

在为 NMF 添加稀疏约束时的一条有用的警告

作者: m-parchami创建于 2024年12月21日更新于 2026年9月17日
标签Documentation
  • 说明与文件有关的问题

目前,[NMF]的文件(https://scikit-learn.org/dev/modules/generation/sklearn.decomposition.NMF.html),以及[MiniBatchNMF](https://scikit-learn.org/dev/modules/generation/sklearn.decomposition.MiniBatchNMF.html)等扩展文件为初学者提供了有益的评论和警告。 例如,什么类型的初始化是适合的,基于是否希望有螺旋等.

然而,没有解决的一个问题是解决核放大机制的规模模糊。 具体地说,如果一个人想要在其中一个基质上出现痉挛,比如W,一个人应该确保另一个基质的规范,在此情况下,H的规范得到控制. 否则,一个无关紧要的解决方案将是W和H的重排版,其中W的规范被降低而H的规范被提高. 这将给出同样的精确(dot-产品)输出,同时降低W矩阵的L1和L2规范. 如果用户后来不手动检查H的规范,他们可能会误导实际发生的情况. 他们可能认为,他们的因子化程度比较少,而大多数情况下,他们得出了类似的解决办法,只是矩阵被调整了。 这确实会阻碍因素化的实际伸缩性。 在[本文]第1页(https://arxiv.org/pdf/2207.06316)上最后一段讨论过这一问题。

  • 提出可能的替代/固定

我核对了文献,人们常常选择在预测渐入(即将另一个矩阵投射到一个特定的规范上,这样模型就不会作弊)或者在另一个矩阵上进行规范规范化. 由于添加PGD将是一个太大的改变,我认为让用户知道,也许鼓励他们也给另一个矩阵增加一个痉挛约束是前进的道路.

我认为,当“alpha w”或“alpha h”之一被启用而另一个为零时,应当有一个简单的警告。 它只是提醒用户注意NMF的规模模糊. 否则,我认为这是文件的一部分,也会有用。 但到现在为止,它可能非常误导人,特别是对于新加入NMF的人.

如果你同意,我很乐意做一个Pull Request 关于这一点,因为它也将是我的第一个PR 对于一个大型项目:

内容来源: scikit-learn/scikit-learn