【降维方法】- 非负矩阵分解【NMF】

简介

非负矩阵分解(Non-negative Matrix Factorization),作为一种非监督式的降维方法,其主要思想正如其名字描述的那样:将一个非负原始矩阵分解为两个非负矩阵的积( Vm  n=Wm  rVr  n V m   ∗   n = W m   ∗   r ⋅ V r   ∗   n ′ )。

矩阵 V V 为原始数据矩阵,包含 n n 个样本,共 m m 个特征。矩阵 V V ′ 为降维后的数据矩阵,包含 n n 个样本,共 r r 个特征( r<m r < m )。矩阵 W W 为权重系数矩阵。

要求降维后的矩阵元素非负,在现实应用中非常广泛,如图像或文本数据,一些负值是没有意义的。

原理

找到合适的矩阵 W W V V ′ 使得:

E=VWV E = V − W ⋅ V ′

||E|| | | E | | 最小, E E 矩阵也被称为噪声矩阵,假设噪声服从不同的概率分布,通过最大似然函数会得到不同类型的目标函数,或者使用基于KL散度的优化目标,优化目标函数即可得到目标矩阵。

细节可以参考:NMF

代码

可以使用sklearn库中的NMF类,其考虑了不同的初始化方,优化的目标函数以及迭代的学习率等问题。

你可能感兴趣的:(数据降维,经典算法)