机器学习中的距离和损失函数

本文介绍了多种距离度量方法,如欧式距离、马氏距离等,并探讨了它们的应用场景及优缺点。此外,还详细解释了几种常用的损失函数,包括log对数损失函数、平方损失函数等,在机器学习中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

13.1 距离度量

  • 距离函数种类:欧式距离、曼哈顿距离、明式距离(闵可夫斯基距离)、马氏距离、切比雪夫距离、标准化欧式距离、汉明距离、夹角余弦等
  • 常用距离函数:欧式距离、马氏距离、曼哈顿距离、明式距离
    1.欧式距离
    欧式距离是最容易直观理解的距离度量方法,我们小学,中学,高中所接触的两个空间中的距离一般都是指的是欧式距离。

    2.曼哈顿距离(Manhattan Distance)
    两个点在标准坐标系上的绝对轴距总和

    3.切比雪夫距离
    各坐标数值差的最大值

    4.闵可夫斯基距离
    闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。

    5.标准化欧氏距离
    定义: 标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都**“标准化”**到均值、方差相等。

    6.马氏距离
    **概念:**马氏距离是基于样本分布的一种距离。物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。

    马氏距离的优点:与量纲无关,排除变量之间的相关性干扰
    7.余弦距离

    夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。
    8.汉明距离
    定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。
    9.信息熵
    以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。

13.2 损失函数

  • log对数 损失函数(逻辑回归)
  • 平方损失函数(最小二乘法)
  • 指数损失函数(AdaBoost)
  • Hinge损失函数(SVM)
  • 0-1损失函数
  • 绝对值损失函数
    损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。
    损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项
    1.log对数 损失函数
    在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数。
    log函数是单调递增的,(凸函数避免局部最优)
    在使用梯度下降来求最优解的时候,它的迭代式子与平方损失求导后的式子非常相似
    2.平方损失函数(最小二乘法, Ordinary Least Squares)
    最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。
    在线性回归中,它假设样本和噪声都服从高斯分布(为什么假设成高斯分布呢?其实这里隐藏了一个小知识点,就是中心极限定理),最后通过极大似然估计(MLE)可以推导出最小二乘式子。
    为什么它会选择使用欧式距离作为误差度量呢(即Mean squared error, MSE),主要有以下几个原因:
  • 简单,计算方便;
  • 欧氏距离是一种很好的相似性度量标准;
  • 在不同的表示域变换后特征性质不变
    3.指数损失函数(AdaBoost)

    4.hinge损失
    在机器学习算法中,hinge损失函数和SVM是息息相关的。在线性支持向量机中,最优化问题可以等价于下列式子:

    损失函数总结

    这里写图片描述
### 关于机器学习中的损失函数 #### 损失函数的定义 损失函数(Loss Function)或代价函数(Cost Function)是一种将随机事件或与该事件有关的随机变量取值映射为某个非负实数来表示该随机事件存在的“风险”或“损失”的函数[^1]。此概念广泛应用于优化问题,在机器学习领域尤其重要。 #### 主要类型及其应用场景 ##### 回归问题上的损失函数 对于回归问题,通常使用的损失函数有均方误差(Mean Squared Error, MSE),其计算目标是使预测值与真实值之间的平方差最小化。这种类型的损失函数适合处理连续数值输出的任务,比如房价预测等。 ```python import numpy as np def mean_squared_error(y_true, y_pred): return np.mean((y_true - y_pred)**2) ``` ##### 分类问题上的损失函数 ###### 对数损失/二分类交叉熵损失 对数损失(Log Loss),即二分类交叉熵损失(Cross Entropy Loss),适用于二分类问题。通过衡量模型给出的概率分布实际标签间的距离来进行性能评价。当模型倾向于给出更接近真实的概率估计时,相应的对数损失会更低[^2]。 ```python from sklearn.metrics import log_loss # 假设这是两个样本的真实标签(0 或 1) 对应的预测概率([p_0, p_1]) true_labels = [0, 1] predicted_probabilities = [[0.9, 0.1], [0.4, 0.6]] logloss_value = log_loss(true_labels, predicted_probabilities) print(f'Log loss value is {logloss_value}') ``` ###### 铰链损失(Hinge Loss) 铰链损失主要用于支持向量机(Support Vector Machine, SVM)中作为分类器训练的目标函数。相比于其他形式的损失函数,它可以更好地捕捉边界情况下的错误惩罚力度,并有助于构建最大间隔超平面[^3]。 ```python from sklearn.svm import SVC from sklearn.metrics import hinge_loss svm_model = SVC(kernel='linear', C=1, random_state=42) # 训练数据X_train以及对应的真实标签y_train... hingeloss_value = hinge_loss(y_train, svm_model.decision_function(X_train)) print(f'Hinge loss value is {hingeloss_value}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值