社区发现算法的个人解析

以下直接上代码:

def greedy_modularity_communities(G, weight=None):
    N = len(G.nodes()) # 节点数
    m = len(G.edges()) # 边数
    q0 = 1.0 / (2.0*m)
    label_for_node = dict((i, v) for i, v in enumerate(G.nodes())) # 将每一个节点都赋予其位置,例如第一个点标号为0, 第二个点标号为1,以此类推
    # label_for_node = { 0:node1, 1:node2, 2:node3, ...}
    node_for_label = dict((label_for_node[i], i) for i in range(N)) # 与上述定义的位置正相反
    # node_for_label = { node1:0, node2:1, node3:2, ...}
    k_for_label = G.degree(G.nodes(), weight=weight)  # 每个节点的度
    k = [k_for_label[label_for_node[i]] for i in range(N)] # 对于N个节点从0到N-1标号位置,各个位置上节点的度数
    communities = dict((i, frozenset([i])) for i in range(N)) # 初始化社区划分
    merges = [] # 初始化合并结果
    partition = [[label_for_node[x] for x in c] for c in communities.values()] # 初始化分区方式
    partition_id = [[x for x in c] for c in communities.values()] # 这一行个人认为无用
    q_cnm = modularity(G, partition) # 初始化模块度

    # 接下来初始化各个数据结构
    # CNM Eq 8-9 (Eq 8 was missing a factor of 2 (from A_ij + A_ji)
    # a[i]: i社区i中的边数对总边数的占比
    # dq_dict[i][j]: 合并社区i, j所产生的dq增益度变化值字典,初始值将每一个点视作一个社区
    # dq_heap[i][n] : dq变化值字典的堆表示,最大的排在前面,小的排在后面,便于取出最大值
    # H[n]: (-dq, i, j) dq_ij中最大的n个值组成的向量,n的个数初始时为有边的节点的个数

    a = [k[i]*q0 for i in range(N)] # a[i]组成的向量

    dq_dict = dict(
        (i, dict(
            (j, 2*q0 - 2*k[i]*k[j]*q0*q0)
           
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JspRun!- 最棒的免费的开源Java社区软件系统 JspRun!论坛软件系统简介 论坛软件系统亦称电子公告板(BBS)系统,它伴随社区BBS的流行而成为互联网最重要的应用之一,也逐渐成为网站核心竞争力的标志性体现。2006年7月 CNNIC 发布的最新统计表明,43.2% 的中国网民经常使用论坛/BBS/讨论组,论坛社区应用首次超过即时通讯 IM ,成为仅次于收发Email的互联网基本应用。 JspRun!是飞速创想(北京)科技有限公司推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。JspRun! 的基础架构采用世界上最先进流行的 web 编程组合 JAVA MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。 JspRun! 开发组具有丰富的 web 应用程序设计经验,尤其在论坛产品及相关领域,经过长期创新性开发,掌握了一整套从算法,数据结构到产品安全性方面的领先技术。使得 JspRun! 无论在稳定性,负载能力,安全保障等方面都居于国内外同类产品领先地位。 2009年4月23日更新内容部分列表 修复功能 1、修复了非法请求资源 2、修复了jsp脚本在一些特殊条件下会产生一个以上的实例,造成脚本执行不同步 3、修复了jsp脚本下次执行时间错误 4、修复了上传附件数组越界,附件来路检查无效,附件下载付费功能无效,下载附件扣除积分错误 5、修复了上传附件的存放路径动态获取 6、修复了清空帖子回收站的时没有删除远程附件 7、修复了查看短消息空指针异常及关键字搜索短消息无效 8、修复了生存缓存文件截取修改时间异常 9、修复了禁止浏览器缓冲功能 10、修复了生成验证码的访问路径 11、修复了主题操作在某些条件下会出错 12、修复了个人空间显示效果,包括文集、昵称、收藏版块、主题图标等 13、修复了上传图片时如果图片是动画为该图片生成缩略图和水印图片 14、修复了在gbk项目下无法保存ftp密码的问题 15、修复了合并用户时合并短消息异常 16、修复了主题自动关闭后仍可以回复的问题 17、修复了编辑主题时缺少主题分类选项,显示信息类别的效果及不能预览远程附件服务器上的图片 18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了主题付费、附件付费无效的问题 23、修复了积分交易功能无效的问题 24、修复了Wap设置时的页面错误、wap查看回帖时的分页信息、wap发帖回帖乱码的问题 25、修复了新用户注册无法保存个性签名等若干bug 26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了广告数量不能整除时无法显示广告的问题 28、修复了“系统错误记录”无法写入的问题 29、修复了后台操作中如果 session 过期重新登陆后出现循环跳转 30、修复了恶意访问后台权限判断,个人签名过滤恶意html代码的问题 31、修复了全文检索不精确 32、修复了如果域名中多一个"/"符,后台表情搜索失效 33、修复了注册时生日输入特殊字符出错的问题 34、修复了删除会员组后计算会员组错误 35、修复了插件版权信息设置错误的问题 36、修复了用户设置界面风格后,第一次访问时界面设置无效问题 37、修复了wap发帖回帖成功后今日发帖数不变的问题以及主题浏览无分页问题 38、修复了浏览帖子时以及查看短消息内容时解析特殊字符$出错的问题 39、更多细节问题的修复 优化功能 1、优化了页面缓存类及页面缓存生成方式 2、优化减少过滤器中的sql查询语句 3、优化减少版块帖子列表sql查询语句 4、优化个人空间 5、优化验证问答 6、优化快速编辑帖子的提交方式和帖子附件下载次数 7、优化搜索的排序方式 8、升级优化序列化类 9、优化统计功能 10、优化所有页面分页功能 11、优化首页,帖子列表,帖子浏览页面,大大减少页面大小,增加浏览速度,减少服务器访问流量 12、优化thread页面解析特殊代码,避免出现死循环, 13、更多细节方面的优化 新增功能 1、增加了远程附件服务器附件下载功能,可以最大限度减轻论坛服务器负担 2、增加了注册页面可添加广告 3、增加了更改访问端口号功能 4、增加了论坛插件功能 5、增加了商品发布功能(包括财付通功能、积分充值功能及相关的论坛交易功能) 6、增加了注册时用户名中如含有'号则屏蔽该用户名
阵的低秩逼近是一种大规模矩阵低秩近似表示技术,是从大规模、复杂的数据中 寻求数据潜在信息的一种强有力方法。非负矩阵分解( Nonnegative MatrixFactorization, NMF)) 是矩阵的低秩逼近方法之一,它是指被分解的矩阵和分解结果矩阵的数值都 是非负的。由于该方法符合数据的真实物理属性,数据的可解释性强,分解结果能够表 示事物的局部特征,且模型符合人们对于客观世界的认识规律(整体是由局部组成的) 等优点, 模型和算法自提出以来得到了广泛研究和应用,已经被成功地应用到许多领域。 当模型数据的指标集多于两个时,模型数据就可以表示成张量的形式,因此张量可以看 成是向量和矩阵在高维空间的推广。对于张量代数理论及其应用的研究也是近来研究的 一个热点。非负矩阵分解与张量分解理论与应用方面的研究虽然取得了很多成果,但仍 然有一些问题需要进一步解决,如寻找好的非负矩阵分解算法,在线数据模型如何应用 非负矩阵分解,非负矩阵分解在具体问题中的进一步应用等。另外,大规模的非负性约 束给所有分解算法带来了求解的困难,影响了非负矩阵分解模型的应用效率,如果取消 一部分非负性约束会提高算法的效率,但得到的特征子空间会如何变化?这也是一个前 人没有进行研究的工作,围绕非负矩阵与张量分解及其应用的研究,本文从几个方面对 于非负矩阵与张量分解进行了以下研究工作: 1. 给出了基于轮换极小化原则的一个非负矩阵分解二次规划模型算法。 借助于内点 罚函数,把子问题的求解转化为一个无约束的二次规划问题模型来求解,再把二次规划 模型求解归结到一个线性方程组的求解,在求解过程中引入了一个降维策略,在一定程 度上降低了问题的求解规模,并给出了算法的收敛性证明,数值试验表明算法能够提取 到局部特征且得到的非负矩阵分解算法具有好的收敛性。 2. 研究了基于非负矩阵分解的一个局部图像识别策略和算法,利用非负矩阵分解算 法提取到的残缺测试图像的局部特征进行有效识别,论文主要研究了残缺区域为已知情 况下的局部图像识别问题,并给出相应的数值试验。 3. 对于训练集图像数据有缺失的识别问题进行了研究。本文首先对图像数据缺失模 式进行了分类,划分了数据缺失模式的三种类型,给出了三种数据缺失模式下利用非负 矩阵分解算法来提取局部特征的模型,分析了三种模型的特点和计算量,通过数值试验 对三种模型提取局部特征能力的进行了比较比较,指出了各种模型的适用于不同实际问山东科技大学博士学位论文 摘要 题时的优缺点。 4.在利用特征子空间进行线人脸识别问题中,当增加或者减少训练样本时,相应地 特征子空间就要发生改变,由于人脸图像数据规模较大,如果对新的训练样本重新进行 特征提取则浪费已有的计算结果和计算资源。 本文给出了一个处理在线人脸识别的算法, 对于训练集增量和减量的情况推导了基于非负矩阵分解的在线迭代公式, 数值试验表明, 该算法可以节约一定的计算时间和计算量,且逼近效果与对训练集数据重新计算得到的 结果相比较更好。 5.在非负矩阵分解中,编码矩阵的非负性约束使得算法求解起来速度较慢,并且, 在实际问题中,由于往往只需要部分分解结果(基矩阵)是非负的。如果我们对于矩阵 分解实行部分非负约束,不仅可以提高算法的效率,还可以节省计算和存储资源,但这 时相应的模型和算法会有什么变化,提取到的特征子空间有什么变化?还能不能表示局 部特征?另外,在非负矩阵分解中,提取局部特征的能力是和模型有关系还是和算法有 关系?本文从这些角度进行了一定的研究,得到了一些结论并进行了数值试验验证。 6.作为向量和矩阵的推广,张量相当于一个高维的矩阵。由于张量模型可以处理指 标集为多维的数据, 所以在描述实际问题时相比矩阵模型其更能接近于实际问题的属性, 因此能更好地描述实际问题。本文对于Web社区发现,给出了一个基于张量的模型及其 相应的算法。模型考虑了权威值,中心值,文本值三个指标,同矩阵模型相比较,由于 张量模型可以很好地保留模型数据的内在本质特征,得到的社区发现模型结果更准确, 可以有效地防止主题漂流的现象,数值试验表明,算法是有效的。 最后, 针对非负矩阵和张量分解研究现状和存在的问题,提出了进一步研究的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值