【机器学习基础】常见二分类损失函数、距离度量的Python实现

python 二维两点距离_python 各类距离公式实现 所列的距离公式列表和代码如下:闵可夫斯基距离(Minkowski Distance)欧氏距离(Euclidean Distance)曼哈顿距离(Manhattan Distance)切比雪夫距离(Chebyshev Distance)夹角余弦(Cosine)汉明距离(Hamming distance)杰卡德相似系数(Jaccard similarity coefficient)读者可根据自己需求有... 阅读详情

本文用Python实现了常见的几种距离度量、二分类损失函数。

设和为两个向量,求它们之间的距离。

这里用Numpy实现,设和为ndarray <numpy.ndarray>,它们的shape都是(N,)

为所求的距离,是个浮点数(float)。

import numpy as np

1.欧氏距离(Euclidean distance)

欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。

def euclidean(x, y):

    return np.sqrt(np.sum((x - y)**2))

2.曼哈顿距离(Manhattan distance)

想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(City Block distance)。

def manhattan(x, y):

    return np.sum(np.abs(x - y))

3.切比雪夫距离(Chebyshev distance)

在数学中,切比雪夫距离(Chebyshev distance)或是L∞度量,是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值。以数学的观点来看,切比雪夫距离是由一致范数(uniform norm)(或称为上确界范数)所衍生的度量,也是超凸度量(injective metric space)的一种。

def chebyshev(x, y):

    return np.max(np.abs(x - y))

4.闵可夫斯基距离(Minkowski distance)

闵氏空间指狭义相对论中由一个时间维和三个空间维组成的时空,为俄裔德国数学家闵可夫斯基(H.Minkowski,1864-1909)最先表述。他的平坦空间(即假设没有重力,曲率为零的空间)的概念以及表示为特殊距离量的几何学是与狭义相对论的要求相一致的。闵可夫斯基空间不同于牛顿力学的平坦空间。

def minkowski(x, y, p):

    return np.sum(np.abs(x - y) ** p) ** (1 / p)

5.汉明距离(Hamming distance)

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以表示两个字,之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

def hamming(x, y):

    return np.sum(x != y) / len(x)
6.二分类损失函数在二分类的监督学习中,支持向量机、逻辑斯谛回归与最大熵模型、提升方法各自使用合页损失函数、逻辑斯谛损失函数、指数损失函数,分别写为:



这 3 种损失函数都是 0-1 损失函数的上界,具有相似的形状。(见下图,由代码生成)
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10,8))
x = np.linspace(start=-1, stop=2, num=1001, dtype=np.float)
logi = np.log(1 + np.exp(-x)) / math.log(2)
boost = np.exp(-x)
y_01 = x < 0
y_hinge = 1.0 - x
y_hinge[y_hinge < 0] = 0

plt.plot(x, y_01, 'g-', mec='k', label='(0/1损失)0/1 Loss', lw=2)
plt.plot(x, y_hinge, 'b-', mec='k', label='(合页损失)Hinge Loss', lw=2)
plt.plot(x, boost, 'm--', mec='k', label='(指数损失)Adaboost Loss', lw=2)
plt.plot(x, logi, 'r-', mec='k', label='(逻辑斯谛损失)Logistic Loss', lw=2)
plt.grid(True, ls='--')
plt.legend(loc='upper right',fontsize=15)
plt.xlabel('函数间隔:$yf(x)$',fontsize=20)
plt.title('损失函数',fontsize=20)
plt.show()


总结本文用Python实现了常见的几种距离度量、损失函数,欢迎收藏!

文末福利


各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。


这个是一份Python代码速查表



下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图



怎样获取呢?可以添加我们的AI派团队的程序媛姐姐
一定要备注【高清图】哦
????????????????????

➕我们的程序媛小姐姐微信要记得备注【高清图】哦
来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~




Python 机器学习 SVM算法的损失函数 SVM的损失函数目的在找到能够最大化边界间隔的最优超平面。最常用的SVM损失函数是合页损失(Hinge Loss)函数,为了避免过拟合,通常在损失函数中加入正则化项,最常见的是L2正则化,其目的是限制模型权重的大小,从而增加模型的泛化能力。梯度下降是一种优化算法,用于最小化SVM的损失函数。通过计算损失函数对于每个参数的梯度,梯度下降算法可以知道如何调整参数以减少损失。在每次迭代中,它都会根据梯度的方向和大小,更新权重和偏置,以此逐步逼近最小损失对应的参数值。 阅读详情

相关推荐

切片Wasserstein距离:高维分布度量的高效计算与机器学习应用

在机器学习和统计学中,概率分布度量是评估模型性能、比较数据集差异的核心基础。Wasserstein距离因其能精准捕捉分布间的几何结构而备受推崇,但其计算复杂度随维度指数增长,面临“维度诅咒”的挑战。切片Wasserstein距离通过将高维分布投影到一维子空间并计算平均距离,巧妙地解决了这一难题。其原理基于拉东变换,保证了度量的同一性和拓扑等价性,同时具备样本复杂度的维度无关性,使其在高维场景下计算高效。这一技术价值在于为生成对抗网络训练、域适应等任务提供了可微且高效的损失函数。通过将高维优化问题转化为大量可

weixin_33672400的博客 558

机器学习02 距离度量

简单介绍几种距离度量方式 1 欧式距离(Euclidean Distance): 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 举例: X=[[1,1],[2,2],[3,3],[4,4]]; 经计算得: d = 1.4142 2.8284 4.2426 1.4142 2.8284 1.4142 2.2...

singularity1980的博客 921

损失函数(Loss Function)一文详解-分类问题常见损失函数Python代码实现+计算原理解析

我们举一个通俗的例子:”假如你玩一个抽卡游戏,这段时间新活动刚好出了一个新的角色你想要抽到她,一般来说抽到这个角色基本都要保底,大部分人都需要一个648才能抽到,但是你的手气实在太非了,氪了两个648才抽到了,那么这和你预估的结果少了一个648的钱,也就是你大抵损失的金额。“通过上面这个例子我们再将大部分人预估抽到的金额设定为Y,而且实际用到的抽奖金额为Y',那么两者的差距|Y-Y'|就是损失函数了。

master_hunter的博客 2441

Python实验九 面向对象程序设计方法

1.写出程序的运行结果 class P1: def foo(self): print('callable P1-foo') class P2: def foo(self): print('callable P2-foo') def bar(self): print('callable P2-bar') class C1(P1,P2): pass class C2(P1,P2): def bar(self):

qq_44495081的博客 1万+

损失函数(Loss Function)一文详解-聚类问题常见损失函数Python代码实现+计算原理解析

在聚类问题中,我们试图将数据集分成不同的组(簇),使得每个组内的数据点相似度较高,而不同组之间的相似度较低。聚类问题的目标是找到合适的簇划分,以最大程度地减小组内的差异,同时最大程度地增大组间的差异。在聚类问题中,并没有像监督学习中那样明确定义的损失函数,因为聚类问题通常是无监督学习,没有预先定义的目标变量。而聚类问题的损失函数通常用于度量簇划分的质量,并提供一种可优化的指标来衡量聚类结果的好坏。损失函数度量了每个簇内数据点的相似度,即簇内数据点之间的相似程度。

master_hunter的博客 6323

基于Opencv+Mediapipe的头部姿态检测

在学生课堂专注度检测项目中,可以通过学生头部姿态来确定学生注意力方向,从而判断其是否专注于课堂。

weixin_67879842的博客 2339

python numpy 求两点的距离 (推荐系统)

python numpy 推荐系统 两点距离

Luo_Ra的博客 3510

安卓手机游戏《英雄迷宫冒险》存档修改

警告 修改前务必备份存档文件夹。该游戏有自动删除存档的功能,有问题的存档会自动删除。 修改对应的游戏版本为1.5。 存档保存位置 内部存储\Android\data\com.xmmf.yxmgmx.taptap\files 该文件夹中文件如下: data.wsf:数据文件。 wsfSave0:第一个存档。 wsfSave1:第二个存档。 修改金钱的例子 先进游戏确认当前金钱数量。当前金钱是2498,然后退出游戏。 根据金钱数量计算出存档中的内容。2498的十六进制是9C2,存档中的内容在存档中搜索该数

番茄鸡蛋的专栏 9368

损失函数~

损失函数概念及几种常见损失函数

chenyuhuaxin的博客 3051

一次HTTP完整得请求过程

一次HTTP完整的请求过程 一,大致流程: 根据域名和DNS解析到服务器的IP地址(DNS+CDN) 通过ARP协议获得IP地址对应的物理机器得MAC地址 浏览器对服务器发起三次握手 建立TCP连接后发起HTTP请求报文 服务器响应HTTP请求,将响应报文返回浏览器 短连接情况下,请求结束通过TCP四次挥手关闭连接,长连接在没有访问服务器得若干时间后,进行连接关闭 浏览器得到响应信...

qq_40760617的博客 344

Python爬虫实战:绕过B站-352风控的完整解决方案

网络爬虫技术是数据采集和自动化测试的重要工具,其核心原理是通过模拟HTTP请求获取网页数据。在实践过程中,开发者常会遇到网站反爬机制,这涉及请求指纹识别、IP行为分析等安全技术。这些风控措施的价值在于保护网站数据安全和服务器资源,广泛应用于电商、社交、内容平台等场景。针对B站等平台的-352风控错误,需要综合运用请求头伪装、会话管理、参数签名破解等技术方案。本文重点探讨如何通过构建完整的浏览器级请求头、管理Cookie会话、以及使用Playwright等浏览器自动化工具,有效解决Python爬虫在B站数据采

weixin_33912638的博客 403

python 二维两点距离_【机器学习基础】常见二分类损失函数、距离度量的Python实现...

本文用Python实现了常见的几种距离度量、二分类损失函数。设和为两个向量,求它们之间的距离。这里用Numpy实现,设和为ndarray ,它们的shape都是(N,)为所求的距离,是个浮点数(float)。import numpy as np1.欧氏距离(Euclidean distance)欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中...

weixin_28788181的博客 545

gurobi最新下载安装教程 2023.11

我下载的最新版gurobi支持python3.7-python3.11,这个序号与计算机硬件捆绑,一旦激活就会失效。运行激活码之后,产生的。如果既放置在了上面的默认搜索目录,又设置了。系统环境变量(不是用户环境变量),指向保存的目录和文件名(例如。高版本产生的许可文件兼容低版本。验证不会成功,学术许可不会激活。之后cmd进入命令行,cd进入gurobi所在的。,实测不到一小时即可审核完毕,获得对应的许可。如果学校的网关没有将本校的。系统环境变量指向不同的目录和文件,原厂无关,是学校网络的设置问题。

Cachel Wood的博客 2万+

【机器学习基础】常见的距离度量&二分类损失函数的公式和python代码实现

具体见链接:距离度量&二分类损失函数的公式和python代码实现 文章来源于微信公众号【机器学习初学者】

Chaoyuan_Jam的博客 336

19、情境理论中的信息结构解析

本文系统解析了情境理论中的信息结构,从信息元(infon)的基本概念出发,深入探讨了关系结构与简单信息结构的构建方法,分析了标准信息结构所满足的一系列公理(如A1-A14),并阐述了角色、同一性、高阶信息、循环现象、参数适当性及信息元部分性等核心性质。通过具体示例和流程图展示了信息结构的构建过程,并对比了不同公理下的结构差异,最后讨论了该理论在与其他领域融合中的发展趋势及面临的挑战。

book8的博客 81

【华为OD机试真题】4、字符统计及重排 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >给出一个仅包含字母的字符串,不包含空格,统计字符串中各个字母(区分大小写)出现的次数, 并按照字母出现次数从大到小的顺序。输出各个字母及其出现次数。 如果次数相同,按照自然顺序进行排序,且小写字母在大写字母之前

KJ.JK 3290

距离度量-Chamfer距离、Fréchet距离

汇总:Chamfer距离(Chamfer Distance)和Fréchet距离(Fréchet Distance)是两种常用于评估曲线或多线段相似性的度量方法。

weixin_36378508的博客 1742

matlab 异常值检测与处理——Robust Z-score法【2024最新版】

博客长期更新,本文最近一次更新时间为:2024年12月9日。

点云侠的博客 1516

Python----机器学习(极大似然估计与交叉熵损失函数)

在机器学习中,对于不同类型的问题,我们通常需要选择合适的损失函数来指导模型的学习过程。损失函数的选择不仅影响模型的性能,还直接关系到优化过程的效率与结果的精准性。特别是在回归预测和分类问题之间,损失函数的性质和应用差异显著。以下是对均方误差(MSE)和交叉熵损失函数(Cross-Entropy Loss)的对比分析。

weixin_64110589的博客 1293

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

二分类交叉熵损失函数python_最全的损失函数汇总 - statistician - OSCHINA - 中文开源技术交流社区...

↑↑点击上方蓝字,回复机器学习,N个G的惊喜资料作者:mingo_敏编辑:深度学习自然语言处理链接:https://blog.youkuaiyun.com/shanglianlm/article/details/85019768tensorflow和pytorch很多都是相似的,这里以pytorch为例。19种损失函数1. L1范数损失 L1Loss计算 output 和 target 之差的绝对值。torc...

weixin_39788256的博客 610

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【机器学习基础】数学推导+纯Python实现机器学习算法3:k近邻

作为一种没有显式训练和学习过程的分类和回归算法,k 近邻在众多有监督机器学习算法中算是一种比较独特的方法。说它独特,是因为 k 近邻不像其他模型有损失函数、有优化算法、有训练...

fengdu78的博客 1221

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

支持向量机:核函数和距离度量

1.背景介绍 支持向量机(Support Vector Machines,SVM)是一种常用的机器学习算法,主要用于分类和回归问题。SVM的核心思想是通过寻找最优的分类超平面,将数据集划分为不同的类别。在实际应用中,SVM通常需要处理高维数据,因此需要使用到核函数(Kernel Function)和距离度量(Distance Metric)等概念和方法来进行数据处理和分析。本文将详细介绍SVM的...

AI天才研究院 853

从入门到掌握:深入理解机器学习中的损失函数

在机器学习中,损失函数(loss function)是一个非常重要的概念。损失函数的作用是度量模型预测值与真实值之间的差距,并且帮助我们优化模型参数,以使预测值更加接近真实值。本文将详细介绍机器学习中的损失函数,包括其原理和实际应用,以及如何使用Python代码来实现它们。

WeLearnNLP 1005

机器学习之梯度下降算法(python实现)

机器学习之梯度下降算法(python实现) 一点关于学习梯度下降算法的感受 首先就个人体验来看,在本科期间在学习运筹与优化这门课程就接触过梯度下降算法,那个时候就是单一的求一个具体多变量函数的最小值问题。现在在机器学习里面的梯度下降算法更多的是根据训练数据集去找到一个合适的拟合函数,那么怎么样才能找到一个拟合度高的函数使之在测试集上有较好的泛化能力,此时就需要定义一个拟合函数模型和一个损失函数,当损失函数的取值最小时就可以得到这个在训练集拟合度好的函数了。得到这个函数模型之后就可以去做相关测试数据的预测了。

苏里的博客 1万+
上一篇: 如何基于Paddle快速训练一个98%准确率的抑郁文本预测模型?
下一篇: 2020程序员工资大起底,疫情之下,编程这行还香吗?
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值