每日一学—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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数

目录 什么是多态性? 概念 分类 向上类型转换 功能的早绑定和晚绑定 绑定 绑定与多态的联系 编译时多态(功能的早绑定) 运行时多态(功能的晚绑定) 一般而言 实现功能晚绑定——虚函数 虚函数定义的说明 什么…

Docker 使用 Fedora 镜像

Fedora 在 Docker 中的使用也非常简单,直接使用命令 docker run -it fedora:latest bash 就可以 pull 到本地的容器中并且运行。 C:\Users\yhu>docker run -it fedora:latest bash Unable to find image fedora:latest locally latest: Pulling from library/fed…

项目实施方案:多点异地机动车典型系统试验状态可视监控系统

目录 一、需求分析 1.1项目背景 1.2项目概述 二、系统优势 2.1兼容性能力强 2.2接入协议多样 2.3并发能力强 2.3.1 单平台参数 2.3.2 多平台性能参数 2.4 系统稳定性 三、建设目标 3.1安全性 3.2可扩展性 3.3易用性 3.4兼容性 3.5 响应能力 四、系统整体解决方…

Linux修炼之路之yum和vim编辑器

目录 一:Linux软件包管理器yum 二:vim编辑器 vim的三种模式及互相转换 命令模式 底行模式 三:普通用户的sudo指令(修改信任名单) 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 一&#xff1a…

创建一个Spring Boot项目

文章目录 一、如何创建一个Spring Boot项目1.1 项目创建:专业版 or 社区版 or 网站创建1.2 数据配置1.3 项目启动1.4 代码编写 二、Spring Boot 项目文件介绍三、Web服务器四、根据HTTP状态码解决bug4.1 4044.2 500 五、Spring VS Spring Boot VS Spring Web MVC5.1…

AI“源神”启动!Llama 3发布,开闭源之争战局生变

在AI的世界里,开源与闭源的较量一直是科技界的热门话题。 今年年初,埃隆马斯克在对OpenAI及其CEO萨姆奥特曼提起诉讼时,就对OpenAI逐渐不公开其模型研究相关细节的行为大加谴责。“时至今日,OpenAI公司网站还宣称,它的…

JVM从1%到99%【精选】-运行时数据区

目录 1.总览运行时数据区 2.内存溢出 3. 程序计数器 4.虚拟机栈 5.本地方法栈 6.堆 7.方法区 8.直接内存 1.总览运行时数据区 Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。运行时数据区可以分为方法区、堆、虚拟机栈、本地方法栈、程序计数器…

美国分析人工智能技术对网络格局的影响(下)

文章目录 前言六、边际效应和威胁七、将人工智能纳入美国网络战略总结前言 以生成式人工智能在网络犯罪市场中的作用为例。利用生成式人工智能(无论是通过生成文本、语音还是图像)的近期威胁之一是在网络操作的初始访问阶段将此类内容用于社会工程和鱼叉式网络钓鱼。例如,一…

vscode 通过ssh 远程执行ipynb +可以切换conda env

主要是保证几个点 远程服务器python 环境没问题 conda这些也都有的ssh的账户 是有conda权限的没有免密就输入密码 免密教程就是最基本的那种 公钥copy过去就行了vscode 那几个插件都要装好 开始操作 首先 vscode 点击左侧工具栏中的扩展,搜索“ssh”,…

7.STL中string的一些超常用函数 (附习题)

目录 1.find 2.atoi 3.to_string 4.getline 【leetcode 习题】 387.字符串中的第一个唯一字符 125. 验证回文串 1.find 1.查找第一次出现的目标字符串:说明:如果查找成功则输出查找到的第一个位置,否则返回-1; s1.find(s2…

linux安装Openresty

安装必要的依赖库 指定仓库地址 下载openresty 添加环境变量 vi /etc/profile i export NGINX_HOME/usr/local/openresty/nginx/ export PATH${NGINX_HOME}/sbin:$PATH esc :wq source /etc/profile #启动 nginx # 重启 nginx -s reload #关闭 nginx -s stop

2024年低碳发展与新能源技术国际学术会议(ICLCDNET 2024)

2024年低碳发展与新能源技术国际学术会议(ICLCDNET 2024) 2024 International Conference on Low Carbon Development and New Energy Technologies 一、【会议简介】 随着全球气候变化的日益严峻,低碳发展和新能源技术已成为国际社会共同关注的焦点。在…

python怎么读取xml

引入XML组件&#xff1a;import xml.dom.minidom。 创建一个xml文件&#xff0c;<?xml version"1.0" encoding"utf-8"?>。 加载读取XML文件&#xff0c;xml.dom.minidom.parse(abc.xml)&#xff0c;这是xml文件的对象。 获取XML文档对象&#xff0…

柯桥法语学习-5大法语听写网站:全力助攻你的dictée!

提到法语dicte&#xff0c;绝对可是法语学生们的老大难&#xff0c;简直就是心痛得不能自已啊&#xff01;所以今天&#xff0c;法语君整理了5个听写网站助攻大家的dicte哦&#xff01; Projet Voltaire 01 一个很容易让你对dicte上瘾的APP 写邮件、实习报告或者动机信时&…

数据新探:用Python挖掘互联网的隐藏宝藏

Hello&#xff0c;我是你们的阿佑&#xff0c;今天给大家上的菜是——数据存储&#xff01;听起来枯燥无味&#xff1f;错了&#xff01;阿佑将带你重新认识数据存储的艺术。就像为珍贵的艺术品寻找完美的展览馆&#xff0c;为你的数据选择合适的存储方式同样重要&#xff01; …

基准电流源电路仿真

1.补全电路 2.更改vpluse属性 3.添加tran仿真&#xff0c;因为加入启动电路主要看的就是tran仿真 4.启动仿真 5.看电路曲线 先点这个main form 不用选择ok&#xff0c;直接点中四条线&#xff0c;中间第2条曲线如果出现那样一个小波动后面没有起伏就说明成功了。

一篇文章带你入门CSRF

1.什么是CSRF 用一个形象生动的比喻就是&#xff1a; 你给朋友的房子留下了备用钥匙&#xff0c;但是有人偷偷拿走了这把钥匙&#xff0c;然后用这把钥匙进入了你朋友的房子并做了各种坏事。你朋友以为只有你能使用这把钥匙&#xff0c;所以没对任何操作产生怀疑。 在这个比…

.NET周刊【5月第2期 2024-05-12】

国内文章 C#在工业数字孪生中的开发路线实践 https://mp.weixin.qq.com/s/b_Pjt2oii0Xa_sZp_9wYWg 这篇文章探讨了C#在工业数字孪生技术中的应用&#xff0c;介绍了三种基于C#的数字孪生系统实现方案&#xff1a; WPF Unity&#xff1a;结合WPF技术和Unity引擎&#xff0c…

算法练习day8

反转字符串 代码随想录 0344.反转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; &#xff08;用时&#xff1a;0.05小时&#xff09; 思路 这道题很简单也很经典。 字符串的反转方法有很多&#xff0c;我这里是用for循环通过数组长度和下标计算来交换。…

如何用Rust获取CPU、内存、硬盘的信息?

目录 一、用Rust获取CPU、内存、硬盘的信息 二、知识点 systemstat 一、用Rust获取CPU、内存、硬盘的信息 首先&#xff0c;需要添加systemstat库到Cargo.toml文件&#xff1a; [dependencies] systemstat "0.2.3" 在Rust代码中使用它&#xff1a; extern crat…