每日一学—K邻算法:在风险传导中的创新应用与实践价值
文章目录
- 📋 前言
- 🎯 K邻算法的实践意义
- 🎯 创新应用与案例分析
- 🔥 参与方式

📋 前言
在当今工业领域,图思维方式与图数据技术的应用日益广泛,成为图数据探索、挖掘与应用的坚实基础。本文旨在分享嬴图团队在算法实践应用中的宝贵经验与深刻思考,不仅促进业界爱好者之间的交流,更期望从技术层面为企业在图数据库选型时提供新的视角与思路。
🎯 K邻算法的实践意义
K邻算法(K-Hop Neighbor),即K跳邻居算法,是一种基于广度优先搜索(BFS)的遍历策略,用于探索起始节点周围的邻域。该算法在关系发现、影响力预测、好友推荐等预测类场景中得到了广泛应用。

在图论中,沿着一条边移动被视为一跳(hop)。在遍历图中的顶点时,我们需要考虑多跳问题。图论起源于数学家欧拉在1836年提出的哥尼斯堡七桥问题,它奠定了图计算的数学基础。自20世纪80年代以来,图计算技术迅速发展,成为现代计算领域的重要组成部分。
在现实世界中,危机的传播正是K邻搜索的一个典型应用。以发生危机的实体为起点,顺着或逆着(取决于边的具体定义)边的方向进行1步、2步、3步乃至更深层次的查询,得到的就是先后会被危机波及到的实体。
以下是一个简单的 JavaScript 示例,演示了如何使用K邻近(K-Nearest Neighbors,KNN)算法进行分类。在这个示例中,我们将创建一个简单的数据集,包含两个特征(x和y坐标)和两个类别(0和1),然后使用KNN算法对新数据进行分类。
// 定义数据集
const dataset = [{ x: 1, y: 2, label: 0 },{ x: 2, y: 3, label: 0 },{ x: 3, y: 4, label: 0 },{ x: 4, y: 5, label: 1 },{ x: 5, y: 6, label: 1 }
];// 定义一个函数来计算两点之间的欧氏距离
function euclideanDistance(point1, point2) {const dx = point1.x - point2.x;const dy = point1.y - point2.y;return Math.sqrt(dx * dx + dy * dy);
}// 定义KNN分类函数
function knn(dataset, newPoint, k) {// 计算新数据点到数据集中每个点的距离const distances = dataset.map(data => ({point: data,distance: euclideanDistance(newPoint, data)}));// 根据距离排序数据点distances.sort((a, b) => a.distance - b.distance);// 取前k个最近的点const nearestNeighbors = distances.slice(0, k);// 统计最近邻居中各类别的数量const counts = nearestNeighbors.reduce((acc, curr) => {const label = curr.point.label;acc[label] = (acc[label] || 0) + 1;return acc;}, {});// 找到最多的类别let maxCount = 0;let predictedLabel;for (const label in counts) {if (counts[label] > maxCount) {maxCount = counts[label];predictedLabel = label;}}return predictedLabel;
}// 测试新数据点的分类
const newPoint = { x: 3.5, y: 4.5 };
const k = 3;
const predictedLabel = knn(dataset, newPoint, k);
console.log(`新数据点 (${newPoint.x}, ${newPoint.y}) 的预测类别是:${predictedLabel}`);
🎯 创新应用与案例分析
以某知名房地产企业HD的供应链图谱为例,我们可以通过持股方向、资金流向等信息,清晰直观地揭示危机的传播路径和传递对象。

以HD为例,危机发生后,风险传播路径如下:
- 第一层:影响HD的关联公司;
- 第二层:影响公司员工和供应商;
- 第三层:影响购房者(供应商停止供货、工人停工,可能导致HD的在建工程停滞)。
风险从HD集团开始,逐步扩散至关联公司、员工、供应商、购房者等,形成了一张复杂的“网络”,呈现出明显的“链条效应”。
然而,许多与风险传导相关的实际应用并未采用图计算,而是依赖于手工计算,如银行KYC部门在计算UBO时仍使用Excel表。这种做法的效率和准确率可想而知。这与金融机构IT系统的陈旧和工作方法的落后有直接关系,阻碍了业务的开展,如企业影响力分析。
企业影响力分析不仅涉及持股关系、生产供求关系等传统问题,还应包括与企业相关的所有金融行为和事件,以及与这些行为事件直接或间接相关的事务。分析的视角不应仅限于企业实体,而应扩展至企业发布的产品、债券等。
如下图所示,分析的核心是企业的某个债券,其价格下跌可能直接影响其他债券的价格:

下图则标出了持有该债券的、可能受影响的省内其他企业:

下图展示的是该债券的1步邻居,从这些邻居继续向外探寻就能得到该债券价格下跌后产生的危机传递效应:

专家们已越来越认识到,金融风险并不是孤立存在的,不同风险间具有链条效应,任何一只蝴蝶扇动翅膀,都有可能造成跨市场的风险传染——风险的关联性具有相互转化、传递和耦合的特点——图技术与蝴蝶效应在本质上是不谋而合的,即通过深度挖掘不同来源的数据,以网络化分析的方式去洞察。
此外,金融场景是一种基于长链条计算的场景,这就导致技术实现时的规则更为复杂,因为会涉及到各种回溯、归因,而且数据的计算量更大,同时也更注重时效性。只有实现真正的实时、全面、深度穿透、逐笔追溯、精准计量的监测和预警,才能保障金融风控中不会出现“蝴蝶效应”式的风险发生。
值得注意的是,图往往包含着复杂的属性及定义,例如:边的有向、无向,边的属性权重,K 邻是否包含 K-1 邻,如何处理计算环路等等,这些问题会导致 K 邻算法具体实现的差异。此外,在一些实际场景中,图自身拓扑结构的变化,过滤条件的设定,节点、边属性的变化都会影响到 K 邻计算的结果。
在行业应用中,K邻算法通常应用于多模态的异构图,即将多个单一信息的图融合在一起形成的综合性图谱。这对算法实现者的数据收集和构图能力提出了高要求,同时也对K邻算法的灵活性和功能性提出了更高标准。嬴图的高密度并发图算法库是目前全球运行最快、最丰富的图算法集合,支持通过EXTA接口进行热插拔和扩展。
如果在公开资料中看到K邻算法的应用多是同构图(只有一种点、一种边),可能是因为作者想通过简单的例子阐明观点,或者因为构图能力不足限制了算法的应用,也可能是K邻算法的实现不尽人意,无法对异构图进行恰当处理。K邻算法的应用应该是广泛且实际的,能够解决现实问题的,如果是因为后面两种情况而限制了算法的“大展宏图”,那么相关图厂商就应该反思一二并提高自身了!
最后,一个优秀的算法设计不仅应具备解决问题的能力,还应关注计算效率,即算力。我们列举了一些高性能图计算系统应具备的核心能力,以供企业在评估市场上各种图计算产品时作为参考:
- 高速图搜索能力:高QPS/TPS、低延时,实时动态剪枝能力;
- 对任何规模图的深度、实时搜索与遍历能力(10层以上);
- 高密度、高并发图计算引擎:极高的吞吐率;
- 成熟稳定的图数据库、图计算与存储引擎、图中台等;
- 可扩展的计算能力:支持垂直与水平可扩展;
- 3D+2D高维可视化、高性能的知识图谱Web前端系统;
- 便捷、低成本的二次开发能力(图查询语言、API/SDK、工具箱等)。
🔥 参与方式
《图算法:行业应用与实践》免费包邮送出 3 本!
抽奖方式:随机抽取 3 位小伙伴免费送出!
参与方式1:关注博主、点赞、收藏、评论区评论 (随机有效留言即可)(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!)
参与方式2:关注博主公众号,私信然后参与抽奖
活动截止时间:2024-5-18 22:00
当当网购买链接:https://product.dangdang.com/29705431.html
相关文章:
每日一学—K邻算法:在风险传导中的创新应用与实践价值
文章目录 📋 前言🎯 K邻算法的实践意义🎯 创新应用与案例分析🔥 参与方式 📋 前言 在当今工业领域,图思维方式与图数据技术的应用日益广泛,成为图数据探索、挖掘与应用的坚实基础。本文旨在分享…...
基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…...
【C++】内联函数、auto、范围for
文章目录 1.内联函数2.auto关键字2.1auto简介2.2auto的注意事项2.3auto不能推导的场景 3.基于范围的for循环(C11)4.指针空值nullptr(C11) 1.内联函数 概念: 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函…...
Day 46 139.单词拆分
单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s “leet…...
streamlit报错:AxiosError: Request failed with status code 403
解决办法: 步骤一:创建config.toml vi ~/.streamlit/config.toml 步骤二:加入以下内容 [server] enableXsrfProtection false enableCORS false步骤三:重新启动你的streamlit网页...
java基础教学 |Java Stream API详解
Java Stream API 是Java 8引入的一个重要特性,它为集合对象提供了一种新的计算模型,使得开发者能够以声明性的方式处理数据集合。Stream API 不仅提高了代码的可读性和简洁性,还极大地优化了并行处理能力,让复杂的集合操作变得高效…...
0.0和0.00竟然不相等!!!BigDecimal别用错了比较方式
对于BigDecimal字段,可以使用compareTo()方法和equals()方法进行比较。但是要注意这两种方法的作用有所不同。一般都应该使用BigDecimal比较值,而不是使用经常用到的equals方法比较内容。 1.compareTo()方法 是用来比较两个BigDecimal对象的大小关系。…...
【多模态】30、Monkey | 支持大尺寸图像输入的多任务多模态大模型
文章目录 一、背景二、方法2.1 Enhancing Input Resolution2.2 Multi-level Description Generation2.3 Multi-task Training 三、效果3.1 Image Caption3.2 General VQA3.3 Scene Text-centric VQA3.4 Document-oriented VQA3.5 消融实验3.6 可视化 论文:Monkey : …...
PHP黑魔法之md5绕过
php本身是一种弱语言,这个特性决定了它的两个特点: 输入的参数都是当作字符串处理变量类型不需要声明,大部分时候都是通过函数进行类型转化php中的判断有两种: 松散比较:只需要值相同即可,类型不必相同,不通类型比较会先转化为同类型,比如全数字字符串和数字比较,会比…...
【适用全主题】WordPress原创插件:弹窗通知插件 支持内容自定义
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 适用于所有WordPress主题的弹窗插件 一款WordPress原创插件:弹窗通知插件 支持内容自定义 二、效果展示 1.部分代码 代码如下(示例)࿱…...
定时器的理论和使用
文章目录 一、定时器理论1.1定时器创建和使用 二、定时器实践2.1周期触发定时器2.2按键消抖 一、定时器理论 定时器是一种允许在特定时间间隔后或在将来的某个时间点调用回调函数的机制。对于需要周期性任务或延迟执行任务的嵌入式应用程序特别有用。 软件定时器: …...
【架构-17】通信系统架构设计理论
通信系统网络架构 1. 局域网网络架构 拓扑结构:星型、总线型、环型、树型。 网络架构:单核心架构(结构简单,地理范围受限)、双核心架构(网络拓扑结构可靠,投资较单核高)、环型架构…...
网络中的基本概念
网络初识 局域网:把若干个电脑组成在一起,通过路由器进行组网。 广域网:把局域网进一步的连接,构成更复杂的网络体系。 IP地址:区分主机。 端口号:区分主机上不同的程序。 协议:是一种约定&…...
手撸XXL-JOB(二)——定时任务管理
在上一节中,我们介绍了SpringBoot中关于定时任务的执行方式,以及ScheduledExecutorService接口提供的定时任务执行方法。假设我们现在要写类似XXL-JOB这样的任务调度平台,那么,对于任务的管理,是尤为重要的。接下来我们…...
DEV--C++小游戏(吃星星(0.2))
目录 吃星星(0.2) 简介 本次更新 分部代码 头文件(增) 命名空间变量(增) 副函数(新,增) 清屏函数 打印地图函数(增) 移动函数 选择颜色…...
Lua 协程池
协程池 在 使用 Lua 协程模拟 Golang 的 go defer 编程模式 中介绍了 Lua 协程的使用,模仿 golang 封装了下 还可以做进一步的优化 原来的 go 函数是这样实现的: function go(_co_task)local co coroutine.create(function(_co_wrap)_co_task(_co_w…...
[Linux][网络][协议技术][DNS][ICMP][ping][traceroute][NAT]详细讲解
目录 1.DNS1.DNS背景2.域名简介 2.ICMP协议1.ICMP功能2.ICMP两类报文 3.ping命令4.traceroute5.NAT技术1.NAT技术背景2.NAT IP转换过程3.静态地址NAT && 动态地址NAT4.网络地址端口转换NAPT5.NAT技术的缺陷6.NAT和代理服务器 6.总结1.数据链路层2.网络层3.传输层4.应用…...
Android 集成Bugly完成线上的异常Exception收集及处理
文章目录 (一)添加产品APP(二)集成SDK(三)参数配置权限混淆 (四)初始化 (一)添加产品APP 一)在个人头像 -> 我的头像 -> 新建产品 二&…...
Redis——Redis的数据库结构、删除策略及淘汰策略
Redis是一个高性能的key-value存储系统,它支持多种数据结构,并提供了丰富的删除策略和淘汰策略。以下是关于Redis的数据库结构、删除策略及淘汰策略的详细介绍: Redis的数据库结构 Redis是一个key-value数据库,数据存储是以一个…...
【Vue3笔记03】Vue3项目工程中使用vue-router路由
这篇文章,主要介绍Vue3项目工程中如何使用vue-router路由。 目录 一、vue-router路由 1.1、下载vue-router路由 1.2、创建router.js文件 1.3、main.js配置路由...
华硕笔记本性能释放新选择:轻量级开源工具GHelper深度体验
华硕笔记本性能释放新选择:轻量级开源工具GHelper深度体验 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix…...
Leather Dress Collection 网络协议分析与API接口设计规范
Leather Dress Collection 网络协议分析与API接口设计规范 最近在内部项目里,我们接入了好几个类似Leather Dress Collection这样的AI模型服务。一开始大家调用得挺开心,但用着用着问题就来了:有的服务突然响应变慢,有的接口偶尔…...
如何5分钟配置绝区零全自动智能助手:释放游戏时间的终极指南
如何5分钟配置绝区零全自动智能助手:释放游戏时间的终极指南 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 还…...
Python3.8开发环境搭建:Miniconda镜像实测,简单高效
Python3.8开发环境搭建:Miniconda镜像实测,简单高效 1. 为什么选择Miniconda-Python3.8镜像 如果你曾经在多个Python项目间切换,一定遇到过这样的困扰:项目A需要TensorFlow 1.15,项目B需要TensorFlow 2.0,…...
C++的std--chrono时间库与steady_clock在性能测量中的正确使用
在C高性能程序开发中,精确测量代码执行时间是优化和调试的关键环节。std::chrono时间库作为现代C的标准工具,提供了高精度、类型安全的计时能力,其中steady_clock因其单调递增的特性成为性能测量的首选。本文将深入解析其正确使用方式&#x…...
在Ubuntu中通过命令行下载和安装Android Studio最新版本
在Ubuntu中通过命令行下载和安装Android Studio最新版本,有以下几种方法: 方法一:直接下载官方最新版本(推荐) 1. 安装Java JDK依赖 sudo apt update sudo apt install openjdk-11-jdk -y2. 安装64位系统所需的32位库 …...
DeepChat行业应用:生物医药文献摘要→靶点关系提取→实验设计建议
DeepChat行业应用:生物医药文献摘要→靶点关系提取→实验设计建议 1. 项目背景与核心价值 在生物医药研发领域,研究人员每天需要阅读大量文献,从海量信息中提取关键发现、识别药物靶点关系,并设计后续实验方案。传统的人工处理方…...
OpenClaw自然语言编程:千问3.5-27B理解模糊需求并执行
OpenClaw自然语言编程:千问3.5-27B理解模糊需求并执行 1. 当AI学会追问:模糊指令的自动化实践 上周日晚上11点,我盯着电脑里散落的387张旅行照片发呆——它们杂乱地堆在Downloads文件夹里,有手机直出的JPG、相机导入的RAW、截图…...
Apache NetBeans社区生态解析:如何参与贡献与获取支持
Apache NetBeans社区生态解析:如何参与贡献与获取支持 【免费下载链接】netbeans Apache NetBeans 项目地址: https://gitcode.com/gh_mirrors/ne/netbeans Apache NetBeans作为一个功能强大的开源IDE(集成开发环境),拥有一…...
ToClaw全方位介绍:你的第一只“龙虾”AI助手,一分钟轻松领养!
ToClaw全方位介绍:你的第一只“龙虾”AI助手,一分钟轻松领养! 一、先来聊聊这只“龙虾”的故事 2026年开年,如果问中文互联网最火爆的技术热词是什么,那一定非「OpenClaw」莫属。这个被大家亲切称为“龙虾”的开源项目…...
