基于块梯度下降的pac-bayesian方法实现nmf
PACbayesianNMF的Python项目详细描述
################################# README.txt############################################### #项目名称:pacbayesiannmf
#目的:非负矩阵pac-bayesian方法的实现
#因子分解,用于块梯度下降。
#作者:阿斯塔·古普塔
#本杰明·盖德,benjamin.guedj@inria.fr>;
#参考:来源:https://arxiv.org/abs/1601.01345
#P.Alquier和B.Guedj(2016年)。“一个尖锐的甲骨文不等式
#对于贝叶斯非负矩阵分解,arxiv预印本。
#有关
#实现的算法。
#许可证:GPLv3
#重要文件和功能列表
# #################################################################################
#“.pacbayesiannmfBlockGradientDescent.py”
#包含名为blockGradientDescent的类
#->;set datamatrix(self,datamatrix):设置datamatrix的函数
#->;setnoofpatterns(self,k):设置要查找的模式数的函数
#->;设置条件步骤(自我,炮制步骤=1e-2,
#在步骤u=1e-3内的条件u上,
< p>>条件→步骤→v=1E-3):设置块的退出条件#梯度下降
#->;设置外部步骤的条件(自身,调制步骤=1e-2):
#设置最外部步骤的值,将紫外线最小化
#->;在destepu中设置条件(self,条件在步骤u=1e-3中):
#为U最小化的内循环设置值
#->;在destepv中设置条件(self,condition on在步骤v=1e-3内):
#为v最小化的内部循环设置值
#
#->;def applyblockGradientDescent(self,b=1e6,lmbd=(float(1)/4)*100,
#pas=1e-3,printflag=0):
#这是应用BlockGradientDescent的主要功能
#b用于通知稀疏性
#lmbd是算法的lambda
#pas是用于计算新u和v的算法中的常数
# ##################################################################################
#用法:导入包,创建一个2d数据矩阵,其中每一行作为具有值的数据点
#介于0到1之间。创建一个参数为datamatrix和
#指定不检测模式的整数。使用设置其他参数
#设置*()方法。最后要应用块梯度下降,请使用
#applyBlockGradientDescent()方法
#
#从pacbayesiannmf导入*
#z=块梯度下降(数据矩阵,2)
#z.设置条件步骤(1e-4、1e-6、1e-6)
#(u,v,crit,out)=z.applyBlockGradientDescent(printFlag=1)
#
#最重要的输出是v,它包含信号。每列v
#crit以数组的形式给出每个步骤中实际数据矩阵和估计的uv之间的距离
#out是一个值列表每个步骤包含不同的变量,有助于调试
################################## END#####################################################