当前位置: 首页 > news >正文

专业网站建设公司哪个公司好种子搜索引擎在线

专业网站建设公司哪个公司好,种子搜索引擎在线,广西壮族自治区教育厅,百度旗下的所有产品一、欧式距离 欧式距离是最常见的距离度量方法,也称为直线距 离。在二维空间中,欧式距离计算两点之间的直线 距离。 import math # 导入数学模块以使用平方根函数 x [1, 1] # 定义点 x 的坐标(1, 1) y [3, 3] # 定义点 y …

一、欧式距离

        欧式距离是最常见的距离度量方法,也称为直线距 离。在二维空间中,欧式距离计算两点之间的直线 距离。

import math  # 导入数学模块以使用平方根函数  x = [1, 1]  # 定义点 x 的坐标(1, 1)  
y = [3, 3]  # 定义点 y 的坐标(3, 3)  # def euclidean_distance(x,y):  
#     return math.sqrt((sum((i-j)**2 for i,j in zip(x,y))))  def euclidean_distance(x, y):  sum_ = 0  # 初始化变量,用于存储坐标差平方的总和  # 遍历两个坐标列表,计算每个维度的差的平方并累加  for i, j in zip(x, y):  sum_ += (i - j) ** 2  # 计算坐标的差的平方并累加到 sum_  # 计算并返回总和的平方根,即为欧式距离  return math.sqrt(sum_)  # 调用函数计算点 x 和 y 之间的欧氏距离并将结果存储在 d 中  
d = euclidean_distance(x, y)  
# 打印计算得到的欧氏距离  
print(f'欧式距离 : {d}')  
#欧式距离:2.8284271247461903

缺点:

        在使用此距离度量之前,需要对数据进行标 准化。随着数据维数的增加,欧氏距离的用处也就 越小。 

二、曼哈顿距离

        曼哈顿距离是计算两点之间水平或垂直线段的距离 之和,也称为城市街区距离或L1距离。

import math  # 导入数学模块,但在这个代码中实际上没有使用到该模块  x = [1, 1]  # 定义点 x 的坐标(1, 1)  
y = [3, 3]  # 定义点 y 的坐标(3, 3)  # def manhattan_distance(x,y):  
#     return sum([abs(i-j) for i ,j in zip(x,y)])  def manhattan_distance(x, y):  sum_ = 0  # 初始化变量,用于存储坐标差的绝对值总和  # 遍历两个坐标列表,计算每个维度的绝对值差并累加  for i, j in zip(x, y):  sum_ += abs(i - j)  # 计算坐标的绝对差并累加到 sum_  # 返回绝对值差的总和,即为曼哈顿距离  return sum_  # 调用函数计算点 x 和 y 之间的曼哈顿距离并将结果存储在 d 中  
d = manhattan_distance(x, y)  
# 打印计算得到的曼哈顿距离  
print(f'曼哈顿距离 : {d}')  # 输出结果  
#曼哈顿距离 : 4

缺点:

        由于它不是可能的最短路径,它比欧几里得 距离更有可能给出一个更高的距离值。随着数据维 数的增加,曼哈顿距离的用处也就越小。

三、切比雪夫距离

        切比雪夫距离是计算两点在各个坐标上的差的绝对 值的最大值。

import math  # 导入数学模块,但在此代码中实际上没有使用到该模块  x = [1, 1]  # 定义点 x 的坐标(1, 1)  
y = [3, 3]  # 定义点 y 的坐标(3, 3)  # def chebyshev_distance(x,y):  
#     return max([abs(i-j) for i ,j in zip(x,y)])  def chebyshev_distance(x, y):  max_ = []  # 初始化一个列表,用于存储每个维度的绝对差  # 遍历两个坐标列表,计算每个维度的绝对差并添加到 max_ 列表中  for i, j in zip(x, y):  max_.append(abs(i - j))  # 计算坐标差的绝对值并加入 max_ 列表  # 返回 max_ 列表中的最大值,即为切比雪夫距离  return max(max_)  # 调用函数计算点 x 和 y 之间的切比雪夫距离并将结果存储在 d 中  
d = chebyshev_distance(x, y)  
# 打印计算得到的切比雪夫距离  
print(f'切比雪夫 : {d}')
#切比雪夫 : 2

缺点:

        切比雪夫通常用于非常特定的用例,这使得 它很难像欧氏距离那样作通用的距离度量。

四、余弦相似度

        余弦相似度是两个向量之间的夹角余弦值,表示两 个向量的方向差异,而不是长度差异。

import math  # 导入数学模块以使用平方根函数  x = [1, 1]  # 定义点 x 的坐标(1, 1)  
y = [3, 3]  # 定义点 y 的坐标(3, 3)  def cosine_similarity(x, y):  # 计算向量的点积  num_erator = sum(i * j for i, j in zip(x, y))  # 计算 x 和 y 的点积  # 计算 x 和 y 的范数(模)  num_denominator = math.sqrt(sum(i ** 2 for i in x)) * math.sqrt(sum(i ** 2 for i in y))  # 计算模的乘积  return num_erator / num_denominator  # 返回余弦相似度  # 调用函数计算 x 和 y 的余弦相似度并将结果存储在 d 中  
d = cosine_similarity(x, y)  
# 打印计算得到的余弦相似度  
print(f'余弦相似度 : {d}')
# 切比雪夫 : 1.0  

缺点:

        余弦相似度无法捕捉向量的幅度信息,只考虑方向。

五、汉明距离

        汉明距离用于衡量两个等长字符串在相同位置上不 同字符的个数。

def hanming_distance(x, y):  # 计算并返回字符串 x 和 y 之间的汉明距离  # 汉明距离是指在相同位置上,两个字符串中不同字符的数量  return sum(i != j for i, j in zip(x, y))  # 使用生成器表达式计算不同字符的总数  # 调用函数计算字符串 '101100' 和 '111000' 之间的汉明距离  
d = hanming_distance('101100', '111000')  
# 打印计算得到的汉明距离  
print(f'汉明距离 : {d}')  # 输出结果  
# 汉明距离 : 2  

缺点:

        当两个向量的长度不相等时,很难使用汉明距离。 

六、闵可夫斯基距离

        闵可夫斯基距离是欧式距离和曼哈顿距离的泛化。 

                p=1 -曼哈顿距离

                p=2 -欧氏距离

                p=∞- 切比雪夫距离

import math  # 导入数学模块,但在此代码中实际上没有使用到该模块  x = [1, 1]  # 定义点 x 的坐标(1, 1)  
y = [3, 3]  # 定义点 y 的坐标(3, 3)  def minkovski_distance(x, y, p):  # 计算并返回闵可夫斯基距离  # 闵可夫斯基距离是指在 p 范数下的距离,p 可以是任意正数  return (sum(abs(i - j) ** p for i, j in zip(x, y))) ** (1 / p)  # 计算绝对差值的 p 次方和,然后取其 p 次根  # 调用函数计算点 x 和 y 之间的闵可夫斯基距离,使用 p=100  
d = minkovski_distance(x, y, 100)  
# 打印计算得到的闵可夫斯基距离  
print(f'闵可夫斯基距离 : {d}')  # 输出结果  
# 闵可夫斯基距离 : 2.0139111001134378  

缺点:

        使用参数p实际上可能很麻烦。

七、Jaccard指数

        Jaccard指数用于计算两个集合的相似度。

def jaccrd_index(x, y):  # 计算并返回 Jaccard 指数  # Jaccard 指数是集合交集大小与并集大小的比值  intersection = len(set(x) & set(y))  # 计算集合 x 和 y 的交集大小  unio = len(set(x) | set(y))  # 计算集合 x 和 y 的并集大小  return intersection / unio  # 返回交集与并集的比值  # 调用函数计算两个集合之间的 Jaccard 指数  
d = jaccrd_index({1, 2, 3}, {2, 3, 4})  # 使用集合 {1, 2, 3} 和 {2, 3, 4}  
# 打印计算得到的 Jaccard 指数  
print(f'Jaccard指数 : {d}')  # 输出结果  
# Jaccard指数 : 0.5  

缺点:

        它受到数据大小的很大影响。 大型数据集 可能会对指数产生很大影响,因为数据量大的话可 能显著增加并集,同时保持交集不变。 

八、半正矢距离

        用于地理坐标系统中两个经纬度点之间的距离。

import math  # 导入数学模块以进行数学运算  def haversine_distance(lat1, lon1, lat2, lon2):  # 计算并返回两点之间的哈弗辛距离  # 哈弗辛公式用于计算地球表面两点间的距离  R = 6371.0  # 地球半径(单位:千米)  # 将经纬度转换为弧度  lat1 = math.radians(lat1)  # 将第一个点的纬度从度转换为弧度  lat2 = math.radians(lat2)  # 将第二个点的纬度从度转换为弧度  lon1 = math.radians(lon1)  # 将第一个点的经度从度转换为弧度  lon2 = math.radians(lon2)  # 将第二个点的经度从度转换为弧度  # 计算经度和纬度的差值  dlon = abs(lon2 - lon1)  # 计算经度差值  dlat = abs(lat2 - lat1)  # 计算纬度差值  # 使用哈弗辛公式计算距离  return 2 * R * math.asin(math.sqrt(math.sin(dlat / 2) ** 2 +   math.cos(lat1) * math.cos(lat2) *   math.sin(dlon / 2) ** 2))  # 返回两点之间的距离  # 调用函数计算从北京(经度 116.4,纬度 39.9)到悉尼(经度 151.21,纬度 -33.87)的距离  
d = haversine_distance(39.9, 116.4, -33.87, 151.21)  # 注意这里经纬度要按顺序传入  
# 打印计算得到的哈弗辛距离  
print(f'半正矢距离 : {d}')  # 输出结果  
# 半正矢距离 : 6371.116099134171  

缺点:

        切比雪夫通常用于非常特定的用例,这使得 它很难像欧氏距离那样作通用的距离度量

http://www.dtcms.com/a/521898.html

相关文章:

  • 哪里有网站开发企业完全删除wordpress
  • 同一把资本的刀
  • icp备案系统网站网站推广计划至少包括
  • 【文末送STM32N6570-DK】STM32N6访问TCM时产生Hard Fault的原因与解决方法 LAT1554
  • 广东门户网站建设泉州网站制作套餐
  • 优惠券网站制作教程运营推广策略有哪些
  • 网站开发过什么软件网站定制开发是什么
  • 莆田做外贸网站软件开发需要学什么知识
  • 大连网站建设找简维科技网站后台模板论坛
  • 网站建设内容存储北京石景山私人影院哪里有
  • 如何选择商城网站建设wordpress站内查找
  • 网站建设图片怎么加水印网站开发研发设计
  • 网络管理员教程(初级)第六版--第3章 网络操作系统
  • UVa 1354 Mobile Computing
  • 做交互设计的网站网站优化搜索排名
  • 延安网站建设公司电话上海网店代运营外包
  • FastText 从入门到实战:文本分类与词向量迁移
  • 首届中葡农业国际博览会(澳门)影响力几何?将带来哪些新机遇?
  • 怎么设计网站内容工程平台公司做什么的
  • 高并发网站建设什么网站做电气自动化兼职
  • 如何使用IntelliJ IDEA进行Java编程
  • 建设淘宝网站的目的跨境网络专线多少钱一年
  • 建设银行网站查询房贷信息查询广州营销型网站优化
  • 中专网站建设课程自己做的网站如何让百度收录
  • 做视频资源网站有哪些难点住房与城乡建设部
  • 延安网站建设推广国际网站怎么做
  • (Hello-Agents 第四章学习笔记)智能体经典范式构建
  • 动易网站开发的主要技术用dw如何做网站首页
  • SpringBoot-Web开发之视图解析
  • 第十三周前端加密绕过