赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 机器学习语法
  6. 机器学习函数
  7. 向量计算函数

向量计算函数

  • 机器学习函数
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

文本、语音、图像、视频都能够以向量的形式保存在向量数据库中,方便用户快速搜索和查询。日志服务支持向量计算函数,本文介绍向量计算函数的基本语法和示例。

向量计算函数列表

重要

以下函数中使用的向量元素,可以用特定格式的字符串来描述,字符串是用"[]"或者"{}"包起来的一组数字,数字之间用逗号分隔开。

函数名称

语法

说明

返回值类型

cosine_similarity函数

  • cosine_similarity(array(double) vector1, array(double) vector2)

  • cosine_similarity(varchar vector1, varchar vector2)

计算两个向量之间的余弦相似度。

余弦相似度的取值范围是[-1, 1]:

  • 当余弦相似度为1时,表示两个向量方向完全相同。

  • 当余弦相似度为-1时,表示两个向量方向完全相反。

  • 当余弦相似度为0时,表示两个向量在几何上是正交的,即它们是垂直的。

double

inner_product或dot_product函数

  • inner_product(array(double) vector1, array(double) vector2)

  • inner_product(varchar vector1, varchar vector2)

  • dot_product(array(double) vector1, array(double) vector2)

  • dot_product(varchar vector1, varchar vector2)

计算两个向量的内积(点积)。

double

l2_distance函数或euclidean_distance函数

  • euclidean_distance(array(double) vector1, array(double) vector2)

  • euclidean_distance(varchar vector1, varchar vector2)

  • l2_distance(array(double) vector1, array(double) vector2)

  • l2_distance(varchar vector1, varchar vector2)

计算两个向量的欧式距离。

double

vector_norm函数

  • vector_norm(array(double) vector1)

  • vector_norm(array(double) vector1, double p)

  • vector_norm(varchar vector1)

  • vector_norm(varchar vector1, double p)

计算一个向量的范数。范数相当于向量的长度。

double

vector_sum函数

  • vector_sum(array(double) vector1)

  • vector_sum(varchar vector1)

计算一个向量的所有元素之和。

double

vector_mean函数

  • vector_mean(array(double) vector1)

  • vector_mean(varchar vector1)

计算一个向量的平均值。

double

vector_variance函数

  • vector_variance(array(double) vector1)

  • vector_variance(varchar vector1)

计算一个向量的方差。方差代表向量元素偏离均值的平均波动幅度的平方和,描述了该向量中元素分布的离散程度。

double

vector_std_dev函数

  • vector_std_dev(array(double) vector1)

  • vector_std_dev(varchar vector1)

计算一个向量的标准差,标准差是方差的正平方根。方差描述了数据点围绕均值的波动大小。方差越大,表示数据点越分散;方差越小,表示数据点越集中。

double

vector_add函数

  • vector_add(array(double) vector1, array(double) vector2)

  • vector_add(varchar vector1, varchar vector2)

计算两个向量相加的结果。

结合向量加减法和向量缩放,可以做任意线性变换。

array(double)

vector_subtract函数

  • vector_subtract(array(double) vector1, array(double) vector2)

  • vector_subtract(varchar vector1, varchar vector2)

计算两个向量相减的结果。

结合向量的加减法和向量的缩放,可以做任意线性变换。

array(double)

vector_scale函数

  • vector_scale(array(double) vector1, double alpha)

  • vector_scale(varchar vector1, double alpha)

结合向量的加减法和向量的缩放,可以做任何线性变换。

array(double)

vector_multiply函数

  • vector_multiply(array(double) vector1, array(double) vector2)

  • vector_multiply(varchar vector1, varchar vector2)

计算两个向量对应元素相乘的结果,返回结果向量。

array(double)

vector_divide函数

  • vector_divide(array(double) vector1, array(double) vector2)

  • vector_divide(varchar vector1, varchar vector2)

计算两个向量对应元素相除的结果,返回结果向量。

array(double)

vector_add_value函数

  • vector_add_value(array(double) vector1, double value)

  • vector_add_value(varchar vector1, double value)

向量的每一个元素都加上一个常数,返回结果向量。

array(double)

vector_fill_nan函数

vector_fill_nan(varchar vector1, varchar fill_option)

对向量中出现的缺失值进行填充,向量中的元素如果为NaN、null、Inf或者-Inf,则被认为是缺失值。

参数fill_option支持多种配置,包括'avg'、'mean'、 'median'、'min'、 'max'以及'value=0'(0可以换成其他具体的数值)。

array(double)

cosine_similarity函数

计算两个向量的余弦相似度。

使用示例

  • 查询和分析语句

    * | SELECT cosine_similarity(array[1, 2, 3, 4], array[10, 20, 30, 40])

    或

    * | SELECT cosine_similarity('[1, 2, 3, 4]', '[10, 20, 30, 40]')
  • 返回结果

    1

inner_product函数

计算两个向量的内积。

使用示例

  • 查询和分析语句

    * | SELECT inner_product(array[1, 2, 3, 4], array[10, 20, 30, 40])

    或

    * | SELECT inner_product('[1, 2, 3, 4]', '[10, 20, 30, 40]')
  • 返回结果

    300.0

l2_distance函数或euclidean_distance函数

说明

l2_distance开头为字母L的小写形式。

计算两个向量的欧式距离。

使用示例

  • 查询和分析语句

    * | SELECT l2_distance(array[1, 3], array[4, 2])

    或

    * | SELECT l2_distance('[1, 3]', '[4, 2]')
  • 返回结果

    3.16

vector_norm函数

根据范数类型p,计算向量的范数(norm)。

使用示例

  • 查询和分析语句

    * | SELECT vector_norm(array[1, 3], 1)
    * | SELECT vector_norm(array[1, 3], 2)
    * | SELECT vector_norm(array[1, 3], 3)
  • 返回结果

    根据范数类型1、2、3,分别计算向量[1,3]的范数。范数类型为1时,计算向量元素的绝对值和为4。范数类型为2时,计算向量元素的平方和的平方根,结果为3.16。范数类型为3时,计算向量元素的三次方和的三次方根,结果为3.04。

vector_sum函数

计算一个向量所有元素的和。

使用示例

  • 查询和分析语句

    * | SELECT vector_sum(array[1, -3])

    或

    * | SELECT vector_sum('[1, -3]')
  • 返回结果

    -2

vector_mean函数

计算一个向量所有元素的平均值。

使用示例

  • 查询和分析语句

    * | SELECT vector_mean(array[1, -3])

    或

    * | SELECT vector_mean('[1, -3]')
  • 返回结果

    -1

vector_variance函数

计算一个向量的方差,描述了该向量中元素分布的离散程度。

使用示例

  • 查询和分析语句

    * | SELECT vector_variance(array[1, -3, 8])

    或

    * | SELECT vector_variance('[1, -3, 8]')
  • 返回结果

    向量均值为2,结果为(12+52+62=62/3)=20.67。

返回值类型

与输入的参数值相同。

vector_std_dev函数

计算一个向量的标准差,标准差是方差的正平方根。

使用示例

  • 查询和分析语句

    * | SELECT vector_std_dev(array[1, -3, 8])

    或

    * | SELECT vector_std_dev('[1, -3, 8]')
  • 返回结果

    向量均值为2,结果为(12+52+62=62/3)0.5=20.670.5=4.54。

vector_add函数

vector_add函数用于计算两个向量的相加结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_add(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    或

    * | SELECT vector_add("[1, 2, 3, 4]", "[2, 3, 1, 1.5]")
  • 返回结果

    [3.0,5.0,4.0,5.5]

vector_subtract函数

vector_subtract函数用于计算两个向量相减的结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_subtract(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    或

    * | SELECT vector_subtract(array[1, 2, 3, 4], array[2, 3, 1, 1.5])
  • 返回结果

    [-1.0,-1.0,2.0,2.5]

vector_scale函数

vector_scale函数用于计算向量缩放的结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_scale(array[1, 2, 3, 4], 5)

    或

    * | SELECT vector_scale('[1, 2, 3, 4]', 5)
  • 返回结果

    [5.0,10.0,15.0,20.0]

vector_multiply函数

vector_multiply函数用于计算两个向量对应元素相乘的结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_multiply(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    或

    * | SELECT vector_multiply('[1, 2, 3, 4]', '[2, 3, 1, 1.5]')
  • 返回结果

    [2.0,6.0,3.0,6.0]

vector_divide函数

vector_divide函数用于计算两个向量对应元素相除的结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_divide(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    或

    * | SELECT vector_divide('[1, 2, 3, 4]', '[2, 3, 1, 1.5]')
  • 返回结果

    [0.5,0.6666666666666666,3.0,2.6666666666666667]

vector_add_value函数

vector_add_value函数用于给向量的每一个元素都加上一个常数。

使用示例

  • 查询和分析语句

    * | SELECT vector_add_value(array[1, 2, 3, 4], 2.0)

    或

    * | SELECT vector_add_value('[1, 2, 3, 4]', 2.0)
  • 返回结果

    [3.0,4.0,5.0,6.0]

vector_fill_nan函数

vector_fill_nan函数用于对向量中出现的缺失值进行填充。向量中的元素如果为NaN、null、Inf或者-Inf,则被认为是缺失值。

参数fill_option支持多种配置,包括:

  • 指定值(value):'value=0'(0可以换成其他具体的数值)。

  • 均值(mean)

  • 中位数(median)

  • 最小值(min)

  • 最大值(max)

使用示例

  • 查询和分析语句

    示例中value=4代替null。

    * | SELECT vector_fill_nan('[1, null, 3, 4]', 'value=4')

    或

    示例中用数组的最大值(max)代替null。

    * | SELECT vector_fill_nan('[1, null, 3, 4]', 'max')
  • 返回结果

    [1.0,4.0,3.0,4.0]

相关文章

向量计算函数 2025-04-22 10:42

文本、语音、图像、视频都能够以向量的形式保存在向量数据库中,方便用户快速搜索和查询。日志服务支持向量计算函数,本文介绍向量计算函数的基本语法和示例。 向量计算函数列表

时序分析函数 2025-04-22 10:42

时间序列分析函数用于处理互联网服务系统或商务运作中产生的指标数据,这些数据可用于预测未来趋势和检测运作过程中的异常情况。日志服务支持时间序列分析函数,本文介绍时间序列分析函数的基本语法和示例。 背景信息

聚类分析函数 2025-04-22 10:42

在商业运作中,聚类分析可以帮助我们发现相似的对象如用户、商品、市场等,从而进行针对性的营销策略,提高效率和收益。本文介绍聚合分类函数的基本语法和示例。 背景信息

回归分析函数 2025-04-22 10:42

回归模型不仅是数据分析和预测的强大工具,也是实现自动化监控和异常检测的有效手段。在复杂系统管理中,结合适当的阈值设置和报警机制,可以大大提高问题发现的及时性和准确性,进而保障系统的稳定运行。本文介绍回归分析函数的基本语法和示例。 背景信息 公式:

分类判别分析函数(Classification) 2025-04-22 10:42

分类判别机器学习模型可以用于在线识别或者判别系统对象的分类,比如识别每一个用户的请求是否为攻击性的请求。也可以用于识别因素之间的关联关系。本文介绍分类判别分析函数的基本语法和示例。 背景信息

负载均衡测量函数 2025-04-22 10:42

在执行操作实现负载均衡前,需要准确衡量分布式系统负载均衡状况。本文介绍负载均衡测量函数的基本语法和示例。 背景信息 负载均衡测量函数示例的日志包含六

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号