• 1.摘要
  • 2.基本信息
  • 3.名称来源
  • 4.算法本质
  • 5.特征矩阵
  • 5.1.数学描述
  • 6.权重矩阵
  • 7.算法介绍
  • 7.1.D值计算的源代码

非负因式矩阵分解

从数据中提取重要特征的技术,被称为非负矩阵因式分解。

基本信息

  • 中文名

    非负矩阵因式分解

  • 外文名

    NMF

名称来源

非负矩阵因式分解,是因为通过这种方式计算出来的结果,也就是特征和权重,都是非负数。

在现实中,这意味着所有的特征值都必须是正数或者零。这有很明显的现实性作用。

算法本质

非负矩阵因式分解,就是对目标矩阵进行因式分解,也就是通过找到两个更小的矩阵,使得二者相乘的结果等于原来的矩阵。这两个更小的矩阵分别是特征矩阵和权重矩阵。

特征矩阵

在该矩阵中,每个特征对应一行,每个特征值对应一列,它所对应的数字,代表了某个特征的重要程度。

数学描述

对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足A=WH,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。

权重矩阵

该矩阵的作用是将特征映射到原始矩阵。其中每一行对应原始矩阵的一组源数据,每一列对应一个特征。

算法介绍

在大部分实际情况下,都找不到A=WH的绝对值。一般都是找到可用的近似值。

因为分解的结果不是完全精确的,W*H只是A的一个低秩估计,这是因为分解算法的本质就是寻找W、H使得A与W*H之间的平方最小。

D = pow(A-W*H)

非负矩阵因式分解常用的算法为模拟退火优化算法,生物遗传算法,以及专门针对矩阵计算的 乘法更新法则算法。

D值计算的源代码

#计算 非负因式矩阵分解的结果和目标的拟合值

#author:范芳铭