基于MATLAB的复杂脑网络拓扑特征提取
我们之前的博客中讲了基于EEG的功能脑网络的构建,在脑网络构建完成之后,为了了解脑网络的拓扑结构,我们需要对其拓扑特征进行提取,这些特征可以作为后续的机器学习或深度学习的输入数据。
下面提供的参考代码均基于MATLAB,且需要提前安装BCT工具箱,没有安装的可以点击下面链接安装 http://www.brain-connectivity-toolbox.net
1.节点度(Degree)
节点度表示一个节点的连接数,是网络中节点的重要性或活跃度的度量。对于无向网络,节点度等于连接到该节点的边的数量。
M = readmatrix(filePath);
% M是二值化的连接矩阵
% 计算节点度
Degree = degrees_und(M);
2.聚类系数 (Clustering Coefficient)
聚类系数表示一个节点的邻居之间是否有较多的连接。它衡量了一个节点的邻居节点形成一个三角形的概率。
CC = clustering_coef_bu(M); % 聚类系数,19*1
CC = CC.'; % 使用转置操作将 19*1 数组转换为 1*19 数组
3. 特征路径长度 (Characteristic Path Length)
特征路径长度是网络中所有节点对之间最短路径长度的平均值。它反映了信息从一个节点传递到另一个节点的平均距离。
4.全局效率 (Global Efficiency)
全局效率是网络中信息传播的效率,定义为所有节点对之间的最短路径的平均倒数。
5.节点偏心率 (Nodal Eccentricity)
节点偏心率是指从某个节点到其他所有节点的最大最短路径长度。
6.网络半径(Network Radius)和网络直径 (Network Diameter)
网络的半径是最小偏心率,直径是最大偏心率。
[lambda, efficiency, ecc, radius, diameter] = charpath(distance_bin(M), 0, 1); % 调用CHARPATH.m计算
ecc = ecc.'; % 使用转置操作将 19*1 数组转换为 1*19 数组
7.传递性 (Transitivity)
传递性是网络中三节点闭环的比例。即,三个节点如果两两之间都有连接,它们就构成一个三角形。
T = transitivity_bu(M);
8.网络密度 (Density)
网络密度是指实际存在的边数与可能的最大边数之比。
D = density_und(M);
9.同配型 (Assortativity)
同配型是指网络中节点之间的相似性,具体指节点度相似性。正同配型意味着度较高的节点倾向于连接度较高的节点,负同配型则是度较低的节点倾向于连接度较低的节点。
A = assortativity_bin(M, 0);
10.节点中心性 (Betweenness Centrality)
节点中心性表示节点在网络中的重要性,衡量节点作为最短路径中介的次数。高中心性的节点意味着它在网络中起着信息流通的中介作用。
BC = betweenness_bin(M);
11.特征向量中心性 (Eigenvector Centrality)
特征向量中心性是基于图的邻接矩阵计算的,它衡量一个节点与其他重要节点的连接性。它考虑了节点的邻居的中心性。
EC = eigenvector_centrality_und(M);
EC = EC.'; % 使用转置操作将 19*1 数组转换为 1*19 数组
12.K-核心中心性 (K-Coreness Centrality)
K-核心中心性度量节点在图中的核心性,表示节点所在的最大核心子图的阶数。
[coreness, kn] = kcoreness_centrality_bu(M);
% coreness:节点核心度 kn:k核的大小
13.富俱乐部系数 (Rich Club Coefficient)
富俱乐部系数描述了网络中高度节点(即度数高的节点)之间的连接程度。
RC = rich_club_bu(M);
14.流量系数 (Flow Coefficient)
流量系数是衡量网络中信息流动效率的一个指标,通常计算为网络中信息流的容量和信息流总量的比值。
[fc, FC, total_flo] = flow_coef_bd(M);
% fc:每个节点的流量系数 FC:整个网络的平均流量系数 total_flo:“流 ”过中心节点的路径数
更多推荐



所有评论(0)