简介
非负矩阵分解(Non-negative Matrix Factorization),作为一种非监督式的降维方法,其主要思想正如其名字描述的那样:将一个非负原始矩阵分解为两个非负矩阵的积( Vm ∗ n=Wm ∗ r⋅V′r ∗ n V m ∗ n = W m ∗ r ⋅ V r ∗ n ′ )。
矩阵 V V 为原始数据矩阵,包含个样本,共 m m 个特征。矩阵为降维后的数据矩阵,包含 n n 个样本,共个特征( r<m r < m )。矩阵 W W 为权重系数矩阵。
要求降维后的矩阵元素非负,在现实应用中非常广泛,如图像或文本数据,一些负值是没有意义的。
原理
找到合适的矩阵 和
V′
V
′
使得:
||E|| | | E | | 最小, E E <script type="math/tex" id="MathJax-Element-1229">E</script> 矩阵也被称为噪声矩阵,假设噪声服从不同的概率分布,通过最大似然函数会得到不同类型的目标函数,或者使用基于KL散度的优化目标,优化目标函数即可得到目标矩阵。
细节可以参考:NMF
代码
可以使用sklearn库中的NMF类,其考虑了不同的初始化方,优化的目标函数以及迭代的学习率等问题。