资源简介
基于相似度的社区发现分裂算法,包括GML文件的读取,相似度计算等,有实例文件可进行实验。
代码片段和文件信息
%======================================================================
%
% Communities Finding
% 注意,这个方法中有个问题
% 在数据预处理节点要去掉一度节点,但是不代表预处理后该图中没有一度节点存在
% 如果一个节点的度为2,并且其中的一个边连接了一个一度节点,那么。。。。。。
%
%======================================================================
clc;clear
%=====================================================================
%% 1. 数据初始化
%获得图信息
Directed_Graph = 0; %表示是有向图还是无向图:0为无向图、1为有向图
NodeNum = 0; %节点的个数
EdgeNum = 0; %边的个数
NodeID = 0; %存储节点编号
NetworkDataAdj = 0; %网路的邻接矩阵
[NetworkDataAdj NodeID NodeNum EdgeNum Directed_Graph] = ReadGML(NetworkDataAdj NodeID NodeNum EdgeNum Directed_Graph);
i_weak = 1; %表示用强社团还是弱社团定义确定社团结构 1表示弱社团定义 0 表示强社团定义
NodeNum = size(NetworkDataAdj 1); %图中的点数
EdgeNum = 0; %图中的边数
MaxCommunitiesNum = 1; %已经划分出了几个社团,初始值为1
CommunitiesIndex_final = zeros(1NodeNum) ; %存放最终各个节点所在的社团标号
i_weak = 1; %表示用强社团还是弱社团定义确定社团结构 1表示弱社团定义 0 表示强社团定义
%==========================================================================
%% 2. 网络数据预处理
%去掉那些只与一个点相连的节点
DeleteNodes = ones(1NodeNum);
LeftNodes = 0; %保留下的节点数目
%检索网络节点,确定1度节点的位置和数目
for i = 1 : NodeNum;
NumOfAdjNode = 0; %标识节点i直接与几个节点相连
for j = 1 : NodeNum;
if NetworkDataAdj(ij) ~= 0
NumOfAdjNode = NumOfAdjNode + 1;
EdgeNum = EdgeNum + 1;
end
end
if NumOfAdjNode >= 2
DeleteNodes(i) = 0;
LeftNodes = LeftNodes + 1;
end
end
EdgeNum = EdgeNum / 2; %求得图中的边数
%将1度节点所占的行和列去掉
NetworkData = zeros(LeftNodes LeftNodes); %存储预处理后的网络结构
CommunitiesIndex = ones(1LeftNodes); %标识各节点属于哪个社团,初值为所有节点都属于1社团
Data_k = 0;
Data_l = 0;
for i = 1 : NodeNum
Data_l = 0;
if DeleteNodes(i) == 0
Data_k = Data_k + 1;
for j = 1 : NodeNum
if DeleteNodes(j) == 0
Data_l = Data_l + 1;
NetworkData(Data_kData_l) = NetworkDataAdj(ij);
end
end
end
end
%求各个节点的度
k_Node = zeros(1 LeftNodes); %记录各个节点的度数
k_Node_Step = zeros(1 LeftNodes); %记录当前步中各个节点的度数,防止出现一度节点再次被孤立的情况
for i = 1 : LeftNodes
row = find( NetworkData(i :) );
k_Node(i) = size( row 2);
end
k_Node_Step = k_Node;
%==========================================================================
%% 3. 社团寻找算法
NetworkData_backup_1 = NetworkData; %保存网络原始数据
Similarity_Matrix = zeros(LeftNodes LeftNodes); %初始化网络节点的相似度矩阵
%--------------------------------------------------------------------------
%寻找相似度最大的节点,并逐步添加边
%或者寻找相似度最小的节点,逐步减少边
%判断是否分裂出社团
Flag_IsCommunities = 1; %初始值赋1是指最初将整个网络看做一个大社团
Flag_IsCommunitie
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7098 2010-06-28 20:32 Detecting Community ba
文件 5965 2012-02-25 17:33 Detecting Community ba
文件 6472 2012-12-01 20:36 Detecting Community ba
文件 470 2010-07-01 10:34 Detecting Community ba
文件 3530 2010-06-11 23:27 Detecting Community ba
文件 9518 2006-07-26 15:04 Detecting Community ba
文件 1434 2010-06-11 19:06 Detecting Community ba
文件 33507 2006-07-22 05:32 Detecting Community ba
文件 1460 2010-06-06 20:24 Detecting Community ba
文件 693 2010-05-31 19:15 Detecting Community ba
文件 4194 2006-07-21 12:39 Detecting Community ba
文件 1227 2010-06-21 09:54 Detecting Community ba
文件 32256 2010-06-03 18:31 Detecting Community ba
文件 5365 2012-12-01 20:36 Detecting Community ba
文件 1906 2010-06-21 09:31 Detecting Community ba
目录 0 2012-12-01 20:37 Detecting Community ba
----------- --------- ---------- ----- ----
115095 16
- 上一篇:WTL10_1077..zip
- 下一篇:常用动态规划状态转移方程
相关资源
- 图像相似度检测之直方图相交基于颜
- opencv-图片相似度对比代码-感知哈希算
- 公司名称相似度计算
- 基于哈希表的代码相似度检测系统源
- 形状上下文相似度匹配算法
- 社区发现常见数据集..
- WordNet Similarity 词语相似度
- 图像相似度 感知相似度计算代码
- 句子相似度评估数据集
- 比较两篇纯英文文本的相似度
- 一款按图像相似度排序的软件,可帮
- 编辑距离算法,比较字符串相似度
- 图片相似度识别
- MachineLearning-相似度距离公式
- 社区发现 网络数据集 texas cornell was
- Louvain快速社区发现算法Fast unfolding算
- MSSIM 图像相似度的计算
- 社区发现算法--10种算法
- zw_文件内容相似度.zip
- 用第三方控件ImageEn,对图片进行相似
- 同义词词林(哈工大扩展版) + Pyth
- SCAN论文以及SNAP平台上实现
- 文件相似度比较器
- 社区发现使用的数据集
- doc2vec训练与相似度计算.rar
- 图片相似度度量
- 社区发现FN算法
- 基于知网的语义相似度计算软件包
-
emoji.xm
l 有478个emoji的SBUnicode编码, - WAV声纹相似度对比dll,可直接调用
评论
共有 条评论