`
yuhai.china
  • 浏览: 160532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

非负矩阵分解

J# 
阅读更多
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
    
分享到:
评论

相关推荐

    非负矩阵分解算法的代码

    非负矩阵分解是一种新的矩阵分解方法,它将一个非负矩阵分解为左右两个非负矩阵的乘积。由于分解前后的矩阵中仅仅包含非负元素,因此原来矩阵中的列向量可解释为对左矩阵中所有列向量(称基向量)的加权和;而权重系数...

    非负矩阵分解matlab代码(全)

    非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析方法,它通过将一个非负的矩阵分解为两个非负矩阵的乘积,从而揭示数据的潜在结构和特征。在MATLAB中实现NMF,可以帮助研究人员和...

    稀疏非负矩阵分解及模式识别

    稀疏非负矩阵分解(Sparse Non-negative Matrix Factorization, SNMF)是一种在机器学习和数据挖掘领域广泛应用的技术,尤其在模式识别、图像处理、文本分析等领域有着显著效果。本资源包含的是经典文献“Non-...

    非负矩阵分解及其应用探讨

    ### 非负矩阵分解及其应用探讨 #### 一、非负矩阵分解的基本概念与算法思想 非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种矩阵分解方法,其核心在于将一个非负矩阵分解为两个较小的非负矩阵的乘积...

    非负矩阵分解_nmf_工具箱_matlab

    资源名:非负矩阵分解_nmf_工具箱_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验...

    用于社区检测的类深度自动编码器非负矩阵分解——中南大学彭汪祺--论文研读笔记11

    【用于社区检测的类深度自动编码器非负矩阵分解】这篇论文主要探讨的是如何利用深度学习的方法改进非负矩阵分解(NMF)技术,以更好地应用于社区检测。社区检测是网络分析的重要部分,旨在识别网络中具有紧密内部...

    非负矩阵分解_D.Lee论文中文翻译

    非负矩阵分解(Non-negative Matrix Factorization,简称NMF)是一种有效的数据分析方法,尤其适用于处理非负数据。该方法将一个非负的数据矩阵分解为两个非负矩阵的乘积,通常用于数据压缩、特征提取以及模式识别等...

    数值优化之非负矩阵分解应用(附可运行matlab代码和较好的可视化)

    1 非负矩阵分解(NMF或NNMF),也是非负矩阵逼近是多元分析和线性代数中的一组算法,其中矩阵V被分解为(通常)两个矩阵W和H ,具有所有三个矩阵都没有负元素的性质。这种非负性使生成的矩阵更容易检查。此外,在...

    GNMF_GNMF_非负矩阵分解_梯度下降_

    非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析技术,它通过将一个非负的大矩阵分解为两个非负的小矩阵的乘积,从而揭示数据的潜在结构和特征。在标题"GNMF_GNMF_非负矩阵分解_...

    非负矩阵分解MATLAB程序

    非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析方法,特别是在机器学习、信号处理和图像分析等领域。MATLAB作为一种强大的数学计算软件,是实现NMF的理想工具。在给定的标题...

    matlab程序非负矩阵分解NMF

    非负矩阵分解(NMF,Nonnegtive Matrix Factorization),NMF,非负矩阵分解,将大矩阵分解成两个小矩阵,且这两个小矩阵都不包含负值。 代码来自Chih-Jen Lin

    论文研究-保持拓扑性非负矩阵分解法在人脸识别的应用.pdf

    提出了一种用于人脸识别新的保持拓扑性非负矩阵分解方法。该方法通过将梯度距离最小化来发现人脸模式内在的流型结构。与PCA、LDA和最初的NMF方法相比较,保持拓扑性非负矩阵分解法发现一种嵌入来保留局部拓扑信息,...

Global site tag (gtag.js) - Google Analytics