非负因式矩阵分解
从数据中提取重要特征的技术,被称为非负矩阵因式分解。
基本信息
- 中文名
非负矩阵因式分解
- 外文名
NMF
名称来源
非负矩阵因式分解,是因为通过这种方式计算出来的结果,也就是特征和权重,都是非负数。
在现实中,这意味着所有的特征值都必须是正数或者零。这有很明显的现实性作用。
算法本质
非负矩阵因式分解,就是对目标矩阵进行因式分解,也就是通过找到两个更小的矩阵,使得二者相乘的结果等于原来的矩阵。这两个更小的矩阵分别是特征矩阵和权重矩阵。
特征矩阵
在该矩阵中,每个特征对应一行,每个特征值对应一列,它所对应的数字,代表了某个特征的重要程度。
数学描述
对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足A=WH,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。
权重矩阵
该矩阵的作用是将特征映射到原始矩阵。其中每一行对应原始矩阵的一组源数据,每一列对应一个特征。
算法介绍
在大部分实际情况下,都找不到A=WH的绝对值。一般都是找到可用的近似值。
因为分解的结果不是完全精确的,W*H只是A的一个低秩估计,这是因为分解算法的本质就是寻找W、H使得A与W*H之间的平方最小。
D = pow(A-W*H)
非负矩阵因式分解常用的算法为模拟退火优化算法,生物遗传算法,以及专门针对矩阵计算的 乘法更新法则算法。
D值计算的源代码
#计算 非负因式矩阵分解的结果和目标的拟合值
#author:范芳铭