最近一直在学习python语言,之前一直使用matlab。看了很多博客都写了该算法的代码,我觉得还不具体,不详细。对于初学者来说,看懂不容易。写了一个NMF算法的python程序供大家参考。参照文献《Algorithms for non-negative matrix factorization》

具体代码如下:

import numpy as np
import torch
import random
import matplotlib.pyplot as pltdef nmf(X,r,maxiter,minError):# X=U*V'row,col = X.shapeU = np.around(np.array(np.random.rand(row, r)),5)V = np.around(np.array(np.random.rand(col, r)),5)obj = []for iter in range(maxiter):print('-----------------------------')print('开始第',iter,'次迭代')# update UXV = np.dot(X,V)UVV = np.dot(U,np.dot(V.T,V))U = (U*(XV/np.maximum(UVV,1e-10)))# update VXU = np.dot(X.T,U)VUU = np.dot(V,np.dot(V.T,V))V = (V*(XU/np.maximum(VUU,1e-10)))d = np.diag(1/np.maximum(np.sqrt(np.sum(V*V,0)),1e-10))V = np.dot(V,d)temp = X - np.dot(U,np.transpose(V))error = np.sum(temp*temp)print('error:',error)print('第',iter,'次迭代结束')obj.append(error)if error<minError:breakreturn U, V, objif __name__ =="__main__":X = np.random.randn(20, 50)X = np.array(np.abs(X))#print('X:',X)U,V,obj = nmf(X,2,100,0.01)x = range(len(obj))plt.plot(x, obj)plt.show()

NMF算法python源代码相关推荐

  1. Python算法(含源代码下载)

    关键字:Python Algorithms Python算法  Mastering Basic Algorithms in the Python Language 使用Python语言掌握基本算法 P ...

  2. Python+Django+Mysql简单在线课程推荐系统 基于用户、项目、内容的协同过滤推荐算法 SimpleOnlineCourseCFRSPyth python实现协同过滤推荐算法实现源代码下载

    Python+Django+Mysql简单在线课程推荐系统 基于用户.项目.内容的协同过滤推荐算法 SimpleOnlineCourseCFRSPyth python实现协同过滤推荐算法实现源代码下载 ...

  3. Python+Django+Mysql个性化二手车推荐系统 汽车推荐系统 基于用户、项目、内容的协同过滤推荐算法 WebCarCFRSPython python实现协同过滤推荐算法实现源代码下载

    Python+Django+Mysql个性化二手车推荐系统 汽车推荐系统 基于用户.项目.内容的协同过滤推荐算法 WebCarCFRSPython python实现协同过滤推荐算法实现源代码下载 一. ...

  4. 大白话解析Apriori算法python实现(含源代码详解)

    大白话解析Apriori算法python实现(含源代码详解) 一.专业名词解释 二.算法思路 三.python代码实现 四.Aprioir的优点.缺点及改进方法 本文为博主原创文章,转载请注明出处,并 ...

  5. nmf算法 python_NMF、CNMF(原理+python实现)

    这篇简书主要解决两个问题: 1.NMF的原理以及代码实现 2.CNMF的原理以及代码实现 NMF(非负矩阵分解) NMF算法的基本思想是将原始非负矩阵分解为两个非负矩阵的乘积从而对原始高维矩阵进行降维 ...

  6. 深度好玩!10个有趣且易上手的AI项目(附 Python 源代码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法那些事 人工智能已经成为我们生活的一部分.我 ...

  7. Pure Pursuit纯跟踪算法Python/Matlab算法实现

    本文的python源代码来自: https://github.com/gameinskysky/PythonRobotics/blob/master/PathTracking/pure_pursuit ...

  8. 10个有趣且易上手的AI项目(附Python源代码)

    来源 | piprogramming 出品 | 大数据文摘   编译 | 青柠 人工智能已经成为我们生活的一部分.我们在日常生活中有意或无意地使用它,如推荐影片,图像识别,语音识别,网站推荐产品等. ...

  9. python源代码的后缀名是什么_Python

    [单选题]Python 源代码文件的后缀为( ). [单选题]/etc/passwd和/etc/shadow两个文件的权限正确的是( ) [单选题]修改以太网卡mac地址的命令为( ). [单选题]关 ...

最新文章

  1. php使用referer,php中HTTP_REFERER函数用法实例
  2. 23 Python 面向对象
  3. 文献学习(part20)--Sparse Subspace Clustering: Algorithm, Theory, and Applications
  4. python的基础知识可以应用到哪方面-Python基础知识
  5. 深度学习工具caffe详细安装指南
  6. cuda合并访问的要求_【CUDA 基础】4.3 内存访问模式
  7. 对Spring的一些理解
  8. 单片机12864c语言,51单片机+带字库液晶12864+DS1302数字时钟C源程序
  9. 【历史上的今天】10 月 24 日:1024 程序员节;中文维基百科上线;iPad mini 诞生十周年
  10. 系统保留分区删除_什么是系统保留分区,您可以删除它吗?
  11. [IOS APP]毕淑敏经典有声小说
  12. uint8_t和char的相互转换
  13. 如何将amr文件转成mp3格式?
  14. hystrix实战--资源隔离技术简介
  15. 揭秘“菲住布渴”中运用的黑科技:除了check in、坐电梯、开门...全部刷脸之外,还有什么?
  16. 剑道独尊 无上剑意(下)
  17. C++ Reference: Standard C++ Library reference: C Library: cfenv: FE_DOWNWARD
  18. CuraEngine
  19. 依据中国BMI分类范围,统计人数
  20. 祝老婆生日快乐(无内容)

热门文章

  1. 追溯系统是如何实现的?
  2. If……else条件判断
  3. python 100days github_GitHub - songhp/Python-100-Days: Python - 100天从新手到大师
  4. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于的牧场管理系统6ui1j
  5. LVS负载均衡群集架构(二):DR模式群集部署+keepalived
  6. 使用ThinkPad T61有感
  7. Linux应用与ubuntu基本操作-曹国辉-专题视频课程
  8. 【微信小程序】实现手写电子签名并保存为图片功能
  9. MarkDown换行
  10. 物业消防安全知识培训PPT模板