修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      欧几里得距离

      ✓ 文件回写 ✕ 属性回写 ✓ 直接返回 ✓ 流式返回 ✕ 统计值

      概述

      在数学中,欧几里得空间中两点之间的欧几里得距离(Euclidean Distance,也称为欧氏距离)是两点之间的直线长度。在图中,指定节点的 N 个数值属性(特征)来表示节点在 N 维欧几里得空间中的位置。

      基本概念

      欧几里得距离

      在二维空间中,两个点 A(x1, y1) 和 B(x2, y2) 之间的欧几里得距离公式为:

      在三维空间中,两个点 A(x1, y1, z1) 和 B(x2, y2, z2) 之间的欧几里得距离公式为:

      推广到 N 维空间,欧几里得距离公式为:

      其中,xi1 表示第一个点的第 i 维坐标,xi2 表示第二个点的第 i 维坐标。

      欧几里得距离的取值范围是 0 到 +∞,数值越小,两个节点越相似。

      标准化欧几里得距离

      标准化欧几里得距离将欧几里得距离的取值范围缩放到 0 至 1;越接近 1,两个节点越相似。

      Ultipa 采用的标准化欧几里得距离计算公式为:

      特殊说明

      • 两个节点的欧几里得距离理论上不依赖它们之间的连通性。

      语法

      • 命令:algo(similarity)
      • 参数:
      名称
      类型
      规范
      默认
      可选
      描述
      ids / uuids []_id / []_uuid / / 待计算的第一组节点的 ID / UUID
      ids2 / uuids2 []_id / []_uuid / / 待计算的第二组节点的 ID / UUID
      type string euclideanDistance, euclidean cosine 相似度衡量指标;euclideanDistance 计算欧几里得距离,euclidean 计算标准化欧几里得距离
      node_schema_property []@<schema>?.<property> 必须 LTE / 必须指定至少两个数值类的点属性来构成向量
      limit int >=-1 -1 返回的结果条数,-1 返回所有结果
      top_limit int >=-1 -1 限制 top_list 的长度,-1 返回完整的 top_list

      本算法有两种计算模式:

      1. 配对:同时配置了 ids/uuidsids2/uuids2 时,将第一组与第二组中的节点两两配对(笛卡尔乘积),逐对计算相似度。
      2. 选拔:仅配置 ids/uuids 时,对于每一个节点,计算其与图中其他所有节点的相似度,目的是选拔与其最相似的节点,返回的 top_list 包含所有与其相似度大于 0 的结果并按相似度降序排列。

      示例

      示例图包含 4 个产品(忽略边),每个产品包含 price、weight、width 和 height 属性:

      文件回写

      计算模式 配置项 回写内容
      配对 filename node1,node2,similarity
      选拔 filename node,top_list
      algo(similarity).params({
        uuids: [1], 
        uuids2: [2,3,4],
        node_schema_property: [price,weight,width,height],
        type: "euclideanDistance"
      }).write({
        file:{ 
          filename: "ed"
        }
      })
      

      结果:文件 ed

      product1,product2,94.3822
      product1,product3,143.962
      product1,product4,165.179
      
      algo(similarity).params({
        uuids: [1,2,3,4],
        node_schema_property: [price,weight,width,height],
        type: "euclidean"
      }).write({
        file:{ 
          filename: "ed_list"
        }
      })
      

      结果:文件 ed_list

      product1,product2:0.010484;product3:0.006898;product4:0.006018;
      product2,product3:0.018082;product4:0.013309;product1:0.010484;
      product3,product4:0.024091;product2:0.018082;product1:0.006898;
      product4,product3:0.024091;product2:0.013309;product1:0.006018;
      

      直接返回

      计算模式
      别名序号
      类型
      描述
      列名
      配对 0 []perNodePair 各点对及相似度 node1, node2, similarity
      选拔 0 []perNode 各点及其选拔结果 node, top_list
      algo(similarity).params({
        uuids: [1], 
        uuids2: [2,3,4],
        node_schema_property: [price,weight,width,height],
        type: "euclideanDistance"
      }) as distance
      return distance
      order by distance.similarity desc
      

      结果:distance

      node1 node2 similarity
      1 4 165.178691119648
      1 3 143.96180048888
      1 2 94.3822017119753
      algo(similarity).params({
        uuids: [1,2],
        type: "euclidean",
        node_schema_property: [price,weight,width,height],
        top_limit: 1
      }) as top
      return top
      

      结果:top

      node top_list
      1 2:0.010484,
      2 3:0.018082,

      流式返回

      计算模式
      别名序号
      类型
      描述
      列名
      配对 0 []perNodePair 各点对及相似度 node1, node2, similarity
      选拔 0 []perNode 各点及其选拔结果 node, top_list
      algo(similarity).params({
        uuids: [3], 
        uuids2: [1,2,4],
        node_schema_property: [price,weight,width,height],
        type: "euclidean"
      }).stream() as distance
      where distance.similarity > 0.01
      return distance
      

      结果:distance

      node1 node2 similarity
      3 2 0.0180816471945529
      3 4 0.0240910110982062
      algo(similarity).params({
        uuids: [1,3],
        node_schema_property: [price,weight,width,height],
        type: "euclideanDistance",
        top_limit: 1
      }).stream() as top
      return top
      

      结果:top

      node top_list
      1 4:165.178691,
      3 1:143.961800,
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写