Cytoscape.js 归一化度中心性(degreeCentralityNormalized / dcn)完全指南
数据可视化【免费下载链接】cytoscape.jsGraph theory (network) library for visualisation and analysis项目地址https://gitcode.com/gh_mirrors/cy/cytoscape.js点击查看免费下载导读归一化度中心性normalized degree centrality是图分析中最常用的节点重要性度量之一它把每个节点的度中心性除以图中所有节点的最大度中心性将结果压缩到0 ~ 1区间从而可以在不同规模、不同边权分布的图上横向比较节点的重要程度。本文以 Cytoscape.js 的eles.degreeCentralityNormalized()简写dcn()为核心完整讲解其 API 签名、返回值结构、带权/无向/有向等各场景的语义并结合 源码实现 与 单元测试 说明其归一化原理与边界行为。读完本文你将能够直接在项目中调用dcn()识别图中最具连接影响力的节点并理解它与未归一化的degreeCentrality()dc()之间的换算关系。一、方法概览与别名degreeCentralityNormalized是 Cytoscape.js 集合collection层的图算法方法位于 src/collection/algorithms/degree-centrality.mjs。源码在定义完elesfn后提供了三组等价别名elesfn.dc elesfn.degreeCentrality; elesfn.dcn elesfn.degreeCentralityNormalised elesfn.degreeCentralityNormalized;即dcn与degreeCentralityNormalised英式拼写均为degreeCentralityNormalized的简写调用效果完全相同cy.$().dcn()等价于cy.$().degreeCentralityNormalized()cy.$().dc()等价于cy.$().degreeCentrality()这些方法通过 src/collection/algorithms/index.mjs 中import degreeCentrality from ./degree-centrality.mjs以及后续degreeCentrality导出注册到集合原型上因此任何 Cytoscape.js 集合cy.$()、cy.nodes()、cy.elements()等都可以直接调用。二、返回值结构归一化的核心契约根据官方文档 degreeCentralityNormalized.mddcn()的返回值根据directed选项分为两种形态。2.1 无向图options.directed: false返回一个对象内含一个函数{ /* 指定节点的归一化度中心性 */ degree: function( node ){ /* impl */ } }2.2 有向图options.directed: true返回一个对象内含两个函数{ /* 指定节点的归一化入度中心性 */ indegree: function( node ){ /* impl */ }, /* 指定节点的归一化出度中心性 */ outdegree: function( node ){ /* impl */ } }2.3 与未归一化版本dc()的返回结构对比未归一化的degreeCentrality()在无向模式下返回{ degree }在有向模式下返回{ indegree, outdegree }见 degreeCentrality.md。两者返回结构完全一致区别仅在于dc()返回的是原始值节点实际连接数/边权和而dcn()返回的是相对最大值归一化后的0 ~ 1数值。三、参数详解与底层实现dcn()的默认参数由 degree-centrality.mjs 中的defaults定义const defaults util.defaults({ root: null, weight: edge 1, directed: false, alpha: 0 });参数默认值类型说明rootnull元素/集合/选择器指定中心性计算的目标节点。在dcn()内部会被自动覆盖为遍历到的每个节点因此通常无需显式传入weightedge 1函数边的权重函数入参为一条边元素返回数值作为该边权重。返回1即退化为无权图只统计连接数directedfalse布尔是否为有向计算。true时分别统计入度/出度alpha0数字度与边权之间的调节参数0 ~ 1源自 Opsahl 等人提出的带权度中心性推广公式详见下文从源码可以清晰看到dcn()的完整归一化流程degree-centrality.mjs取调用集合的所有节点this.nodes()记录节点数numNodes遍历每个节点将options.root临时设为该节点并调用一次this.degreeCentrality(options)获得其原始度中心性同时维护全局最大值maxDegree无向或maxIndegree/maxOutdegree有向将每个节点的原始值除以对应最大值作为闭包中返回函数的计算结果若最大值为0空图或全零权重则返回0以避免除零。3.1 归一化公式无向场景下每个节点v的归一化度中心性为dcn(v) dc(v) / max_{u ∈ V} dc(u)有向场景下则分别对入度和出度归一化indegree_norm(v) indegree(v) / max_{u ∈ V} indegree(u) outdegree_norm(v) outdegree(v) / max_{u ∈ V} outdegree(u)正因为每个节点的值都以图中所有节点的最大值为分母所以数值最大的那个节点其归一化值恒为1孤立节点度为零的归一化值为0其余节点落在(0, 1)之间。3.2 节点参数支持字符串选择器返回的degree/indegree/outdegree函数接受两种入参元素对象element或选择器字符串。源码中通过is.string(node)判断后执行cy.filter(node)将选择器解析为集合degree-centrality.mjs。因此文档示例dcn.degree(#j)中#j是合法的 ID 选择器写法等价于传入 ID 为j的节点元素。四、底层dc()的度中心性算法归一化的上游要真正理解归一化值需要先理解其上游的原始度中心性degreeCentrality()实现degree-centrality.mjs它实现了 Opsahl 论文Node centrality in weighted networks: Generalizing degree and shortest paths中的 Degree 定义。4.1 无向带权公式无向模式下取根节点与调用集合的交集中的连接边计算degree k^(1 - alpha) * s^alpha其中k 与根节点相连的边数连接数s 这些边的权重之和alpha 调节参数。由此可得两个极端情形alpha 0时degree k只看连接数完全忽略边权alpha 1时degree s只看边权和完全忽略连接数0 alpha 1时两者兼顾。4.2 有向带权公式有向模式下将连接边拆分为入边edge.target().same(root)与出边edge.source().same(root)分别计算indegree k_in ^(1 - alpha) * s_in ^alpha outdegree k_out^(1 - alpha) * s_out^alpha其中k_in/k_out为入/出边数量s_in/s_out为入/出边权重和。注意有向模式下连边统计同样受调用集合限制callingEles.has(edge)即只统计调用集合内部包含的边这一点对局部子图分析非常关键。4.3 测试验证的数值示例test/collection-algorithms.mjs 中的测试构造了一个包含a~f六个节点、9 条带权边的图并覆盖了无权/带权、无向/有向、alpha 0/1共 8 组用例。以带权无向alpha 1为例各节点degree期望值为a 4、b 12、c 14、d 17、e 18带权有向alpha 1时e的indegree 18、a的outdegree 4等。这些断言可直接作为理解dc()/dcn()数值语义的基准样例。五、示例从官方文档到可直接运行代码官方文档 degreeCentralityNormalized.md 给出的核心示例为var dcn cy.$().dcn(); console.log( dcn of j: dcn.degree(#j) );其流程是先在图上用 ID 选择器#j定位一个名为j的节点选择器语法详见 selectors.md然后对整图调用dcn()得到归一化结果对象最后把#j字符串传给degree函数即可得到该节点的归一化度中心性。为了让示例可直接运行这里给出一个完整的可执行版本结合测试图结构扩展import cytoscape from ./src/test.mjs; // 开发环境入口或替换为构建产物 const cy cytoscape({ elements: { nodes: [ { data: { id: a } }, { data: { id: b } }, { data: { id: c } } ], edges: [ { data: { id: ab, source: a, target: b } }, { data: { id: bc, source: b, target: c } }, { data: { id: ca, source: c, target: a } } ] } }); // 无向归一化 const dcn cy.$().dcn(); console.log( dcn of a: dcn.degree(#a) ); // 1两个邻居与 b、c 并列最大 // 有向归一化 const dcnDir cy.$().dcn({ directed: true }); console.log( indegree of a: dcnDir.indegree(#a) ); // 1a 只有一条入边 c→a而 b、c 也各一条均为 1 console.log( outdegree of a: dcnDir.outdegree(#a) ); // 1a 只有一条出边 a→b各节点均 1 条出边 // 带权归一化weight 取边 data 中的 weight 字段alpha1 表示只看边权和 const dcnWeighted cy.$().dcn({ weight: edge edge.data(weight), alpha: 1 });5.1 各场景调用要点速查使用场景推荐写法无权无向图归一化cy.$().dcn()无权有向图归一化cy.$().dcn({ directed: true })带权无向图归一化cy.$().dcn({ weight: e e.data(weight) })带权有向图归一化cy.$().dcn({ directed: true, weight: e e.data(weight) })兼顾连接数与边权cy.$().dcn({ alpha: 0.5 })子图内部归一化先筛选出子图集合如cy.$(#subgraph).dcn(...)六、实际应用场景与注意事项6.1 典型应用关键节点识别归一化后可直接按数值排序找出图中连接能力最强值为1的枢纽节点用于网络鲁棒性分析、传播源定位等跨图比较不同规模、不同边权的网络其原始度中心性不可直接比较归一化到0 ~ 1后具备可比性有向网络分析社交媒体关注网络等场景下indegree受欢迎程度与outdegree活跃程度分开归一化可分别刻画两种角色带权网络结合weight与alpha可建模连接数量 vs 连接强度的权衡。6.2 注意事项分母是全局最大值而非总节点数归一化除以的是最大度值因此最大节点的值恒为1这与除以节点数 N的另一种归一化定义不同解读结果时需留意孤立节点/全零权重返回 0源码中对maxDegree 0等情况显式返回0degree-centrality.mjs避免除零异常调用集合决定统计范围无向模式下连接边统计为root.connectedEdges().intersection(callingEles)有向模式为callingEles.has(edge)即dcn()只基于调用它的集合所包含的边进行计算子图调用得到的是子图内部的归一化中心性内部时间复杂度为 O(N) 次dc()dcn()会为每个节点调用一次degreeCentrality()degree-centrality.mjs在大图上重复计算会有一定开销可结合 performance.md 中的调优建议使用。七、相关资源官方 API 文档degreeCentralityNormalized.md、degreeCentrality.md源码实现src/collection/algorithms/degree-centrality.mjs注册导出src/collection/algorithms/index.mjs测试用例test/collection-algorithms.mjs概念定义degree / indegree / outdegree / total degreedegree.md中心性算法族整体说明documentation/md/collection/algorithms.md赞分享数据可视化【免费下载链接】cytoscape.jsGraph theory (network) library for visualisation and analysis项目地址https://gitcode.com/gh_mirrors/cy/cytoscape.js点击查看免费下载相关推荐MXNet Gluon 归一化层完全指南从数据归一化到 BatchNorm、LayerNorm 与 InstanceNormMXNet Gluon 归一化层完全指南从数据归一化到 BatchNorm、LayerNorm 与 InstanceNorm 归一化Normalizatio人工智能深度学习机器学习MXNet Gluon 归一化块实战指南数据归一化、BatchNorm、LayerNorm 与 InstanceNorm 完全解析MXNet Gluon 归一化块实战指南数据归一化、BatchNorm、LayerNorm 与 InstanceNorm 完全解析 本教程以 MXNet Gl深度学习机器学习人工智能终极指南BatchNorm、LayerNorm与InstanceNorm在fastai中的应用对比终极指南BatchNorm、LayerNorm与InstanceNorm在fastai中的应用对比 fastai是一个强大的深度学习库提供了丰富的工具和功能人工智能深度学习上一篇300ms加载优化Bilibili-Evolved的终极按需加载策略与实现下一篇如何用Bandit快速发现Python代码中的安全漏洞5分钟终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Google Gemini 深度评测与实战:用 TaoToken 统一 Key 打通 API 调用链路

Google Gemini 深度评测与实战:用 TaoToken 统一 Key 打通 API 调用链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/23 23:52:07 阅读更多 →
SAP销售BOM配置全解析:从后台六件套到前台VA01-VF01实操与避坑

SAP销售BOM配置全解析:从后台六件套到前台VA01-VF01实操与避坑

简介:这份PDF面向SAP SD顾问、ERP实施人员及企业内部关键用户,聚焦销售BOM这一特殊业务场景的配置与落地。内容以“盒装综合礼品”为例,完整梳理了从业务前提、后台配置到前台操作的全链路:涵盖可用性检查中成品与组件的差异化设置…

2026/9/23 23:51:07 阅读更多 →
手持刀行为检测数据集4381张:YOLOv8训练调参避坑指南

手持刀行为检测数据集4381张:YOLOv8训练调参避坑指南

简介:本资源为面向YOLO系列算法的手持刀行为检测数据集,适用于安防监控、智能视频分析等场景下的目标检测模型训练与验证,适合具备一定深度学习基础、需要快速搭建刀具识别实验的开发者与研究人员。压缩包共2000个文件,以xml标注文…

2026/9/23 23:51:07 阅读更多 →

最新新闻

深入解析 SpaceX-API v4 payloads 端点:载荷数据获取、字段模型与查询实践

深入解析 SpaceX-API v4 payloads 端点:载荷数据获取、字段模型与查询实践

后端API设计 【免费下载链接】SpaceX-API :rocket: Open Source REST API for SpaceX launch, rocket, core, capsule, starlink, launchpad, and landing pad data. 项目地址: https://gitcode.com/gh_mirrors/spa/SpaceX-API 点击查看 免费下载 导读 /v4/payloa…

2026/9/24 0:40:48 阅读更多 →
攻克 mal 实现难点:Hints 指南中的时间戳、函数引用、I/O 与 Reader 设计

攻克 mal 实现难点:Hints 指南中的时间戳、函数引用、I/O 与 Reader 设计

示例工程 【免费下载链接】mal mal - Make a Lisp 项目地址: https://gitcode.com/gh_mirrors/ma/mal 点击查看 免费下载 mal(Make a Lisp)是一个用数十种语言逐步实现 Lisp 解释器的教学项目。在编写 step0 到 stepA 的过程中,实…

2026/9/24 0:40:48 阅读更多 →
基于MediaPipe和OpenCV的手势识别与手指计数实战

基于MediaPipe和OpenCV的手势识别与手指计数实战

简介:基于Python语言,结合OpenCV与MediaPipe的手势识别及手指计数项目,面向需要完成计算机毕设或入门计算机视觉的开发者,提供可直接运行的完整代码与测试数据。资源包共5个文件,包含2个Python脚本、2个Markdown说明文…

2026/9/24 0:40:48 阅读更多 →
PSO优化RBF神经网络:轻量级协同调参实战指南

PSO优化RBF神经网络:轻量级协同调参实战指南

简介:本资源是一个基于粒子群优化(PSO)算法实现RBF神经网络参数调优的轻量级Python实践项目,面向机器学习初学者与算法优化实践者,聚焦于非线性拟合与分类任务中RBF网络结构参数(如中心、宽度、权值&#x…

2026/9/24 0:40:48 阅读更多 →
星月神产品质量怎么样,安防服务专业吗

星月神产品质量怎么样,安防服务专业吗

从新世纪之初到当下,中国房地产行业与装配式建筑产业历经了从高速扩张到高质量发展的深刻变迁,无数建材家居品牌在浪潮中起起落落,有人急功近利追求短期规模,有人沉下心打磨产品与服务。浙江星月安防科技有限公司从2001年成立至今…

2026/9/24 0:40:48 阅读更多 →
深入解析onblur与onchange:从触发机制到easyui日期控件实战

深入解析onblur与onchange:从触发机制到easyui日期控件实战

1. 表单交互的隐形骨架:为什么这两个事件值得单独拎出来讲做前端开发的人,几乎每天都在和表单打交道。输入框、下拉框、日期选择器、文件上传,这些控件构成了用户与系统之间最基础的对话通道。但很多人写了几年业务代码,对onblur和…

2026/9/24 0:38:48 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →