from numpy import *
from random import *
def difcost(a,b):
dif=0
for i in range(shape(a)[0]):
for j in range(shape(a)[1]):
dif+=pow(a[i,j]-b[i,j],2)
return dif
def factorize(v,pc=10,iter=50):
ic=shape(v)[0]
fc=shape(v)[1]
w=matrix([[random() for j in range(pc)] for i in range(ic)])
h=matrix([[random() for i in range(fc)] for j in range(pc)])
for i in range(iter):
wh=w*h
cost=difcost(v,wh)
print cost
if cost==0:break
hn=(transpose(w)*v)
hd=(transpose(w)*w*h)
h=matrix(array(h)*array(hn)/array(hd))
wn=(v*transpose(h))
wd=(w*h*transpose(h))
w=matrix(array(w)*array(wn)/array(wd))
return w,h
if __name__=='__main__':
m1=matrix([[1,2,3],[4,5,6]])
m2=matrix([[1,2],[3,4],[5,6]])
print m1*m2
w,h=factorize(m1*m2,pc=2,iter=200)
print w*h
print w
print h
分享到:
相关推荐
非负矩阵分解是一种新的矩阵分解方法,它将一个非负矩阵分解为左右两个非负矩阵的乘积。由于分解前后的矩阵中仅仅包含非负元素,因此原来矩阵中的列向量可解释为对左矩阵中所有列向量(称基向量)的加权和;而权重系数...
非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析方法,它通过将一个非负的矩阵分解为两个非负矩阵的乘积,从而揭示数据的潜在结构和特征。在MATLAB中实现NMF,可以帮助研究人员和...
稀疏非负矩阵分解(Sparse Non-negative Matrix Factorization, SNMF)是一种在机器学习和数据挖掘领域广泛应用的技术,尤其在模式识别、图像处理、文本分析等领域有着显著效果。本资源包含的是经典文献“Non-...
### 非负矩阵分解及其应用探讨 #### 一、非负矩阵分解的基本概念与算法思想 非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种矩阵分解方法,其核心在于将一个非负矩阵分解为两个较小的非负矩阵的乘积...
资源名:非负矩阵分解_nmf_工具箱_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验...
【用于社区检测的类深度自动编码器非负矩阵分解】这篇论文主要探讨的是如何利用深度学习的方法改进非负矩阵分解(NMF)技术,以更好地应用于社区检测。社区检测是网络分析的重要部分,旨在识别网络中具有紧密内部...
非负矩阵分解(Non-negative Matrix Factorization,简称NMF)是一种有效的数据分析方法,尤其适用于处理非负数据。该方法将一个非负的数据矩阵分解为两个非负矩阵的乘积,通常用于数据压缩、特征提取以及模式识别等...
1 非负矩阵分解(NMF或NNMF),也是非负矩阵逼近是多元分析和线性代数中的一组算法,其中矩阵V被分解为(通常)两个矩阵W和H ,具有所有三个矩阵都没有负元素的性质。这种非负性使生成的矩阵更容易检查。此外,在...
非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析技术,它通过将一个非负的大矩阵分解为两个非负的小矩阵的乘积,从而揭示数据的潜在结构和特征。在标题"GNMF_GNMF_非负矩阵分解_...
非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析方法,特别是在机器学习、信号处理和图像分析等领域。MATLAB作为一种强大的数学计算软件,是实现NMF的理想工具。在给定的标题...
非负矩阵分解(NMF,Nonnegtive Matrix Factorization),NMF,非负矩阵分解,将大矩阵分解成两个小矩阵,且这两个小矩阵都不包含负值。 代码来自Chih-Jen Lin
提出了一种用于人脸识别新的保持拓扑性非负矩阵分解方法。该方法通过将梯度距离最小化来发现人脸模式内在的流型结构。与PCA、LDA和最初的NMF方法相比较,保持拓扑性非负矩阵分解法发现一种嵌入来保留局部拓扑信息,...