58、回归与聚类:损失函数、算法及应用全解析

回归与聚类:损失函数、算法及应用全解析

1. 回归任务中的损失函数

在回归任务里,损失函数是评估模型性能的关键工具。以下为大家介绍几种常见的损失函数。

1.1 平均绝对误差(MAE)

平均绝对误差(MAE),也被叫做L1损失,是评估回归模型最简单的损失函数之一,也是易于理解的评估指标。从数学角度来看,它是绝对误差的平均值,用于评估回归模型的有效性。MAE仅衡量误差的大小,不考虑误差的方向。MAE值越低,模型的准确性就越高。其定义如下:
[MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|]

1.2 平均绝对百分比误差(MAPE)

平均绝对百分比误差(MAPE),也称作平均绝对百分比偏差(MAPD),以百分比的形式衡量误差。其计算方法是将绝对误差除以实际值的平均值,再乘以100,得到百分比误差。即:
[MAPE = \frac{1}{n}\sum_{i=1}^{n}\frac{|y_i - \hat{y}_i|}{y_i} \times 100]
需要注意的是,MAPE的条件是实际值 (y_i \neq 0)。而且,当 (y_i) 接近0时,会产生非常大的值。

1.3 平均偏差误差(MBE)

平均偏差误差(MBE)中的偏差,指的是在测量过程中高估或低估参数值的倾向。偏差只有一个方向,可为正或负。正偏差意味着数据误差被高估,负偏差则表示误差被低估。平均偏差误差是实际值与预测值之差的平均值。该评估指标量化了整体偏差,并捕捉了预测中的平均偏差。其定义如下:
[MBE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)]
MBE与MAE类似,唯一的区别是MBE不取绝对值。由于正误差和负误差可能相互抵消,因此在使用这个评估指标时需要谨慎。

1.4 相对绝对误差(RAE)

相对绝对误差(RAE)是通过将总绝对误差除以实际值与平均值的绝对差之和来计算的。其表达式如下:
[RAE = \frac{\sum_{i=1}^{n}|y_i - \hat{y} i|}{\sum {i=1}^{n}|y_i - \bar{y}|}]
其中,(\bar{y}) 是n个实际值 (y_i) 的平均值,其计算公式为:
[\bar{y} = \frac{1}{n}\sum_{i=1}^{n}y_i]
RAE以比率的形式衡量回归模型的性能,范围是0到1。较好的回归模型接近0,最佳回归模型等于0。

1.5 相对平方误差(RSE)

相对平方误差(RSE)是将均方误差(MSE)除以数据实际值与平均值之差的平方和得到的。其表达式如下:
[RSE = \frac{\sum_{i=1}^{n}(y_i - \hat{y} i)^2}{\sum {i=1}^{n}(y_i - \bar{y})^2}]
这里的 (\bar{y}) 同样是n个实际值 (y_i) 的平均值,计算方法如上述公式所示。

1.6 Huber损失

Huber损失也被称为平滑平均绝对误差(SMAE),它是线性和二次评分方法的组合,平衡并结合了平均绝对误差(MAE)和均方误差(MSE)的特点。它有一个超参数 (\delta),可根据数据进行调整。对于大于 (\delta) 的值,损失为线性(L1损失);对于小于 (\delta) 的值,损失为二次(L2损失)。换句话说,对于小于 (\delta) 的损失值,使用MSE;对于大于 (\delta) 的损失值,使用MAE。其表达式如下:
[L_{\delta}(y, \hat{y}) =
\begin{cases}
\frac{1}{2}(y_i - \hat{y}_i)^2, & \text{for } |y_i - \hat{y}_i| \leq \delta \
\delta(|y_i - \hat{y}_i| - \frac{1}{2}\delta), & \text{otherwise}
\end{cases}
]
(\delta) 的选择至关重要,因为它定义了对异常值的容忍度。Huber损失通过使用MAE降低了对较大损失值的异常值的敏感性,而对于较小的损失值,使用MSE保持二次函数。

1.7 Log - Cosh损失

Log - Cosh损失计算误差的双曲余弦的对数。这个函数比二次损失函数更平滑,其作用与均方误差(MSE)类似,但不受较大预测误差的影响。其公式如下:
[L(y, \hat{y}) = \sum_{i=1}^{n}\log(\cosh(y_i - \hat{y}_i))]
Log - Cosh损失与Huber损失非常相似,因为它也是线性和二次评分方法的组合。

1.8 决定系数

决定系数,也称为R平方((R^2)),表示因变量的方差中可由自变量预测的比例,因此也被称为解释方差。换句话说,(R^2) 表示回归模型对训练样本的拟合程度。其公式如下:
[R^2 = 1 - RSE = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y} i)^2}{\sum {i=1}^{n}(y_i - \bar{y})^2}]
从上述公式可以看出,(R^2) 可以取0到1之间的任何值,不同的值有不同的含义:
- 若值为0,意味着因变量不能由自变量解释。
- 若值为1,意味着自变量可以完美解释因变量,没有误差。

2. 回归任务的应用领域

回归用于估计自变量和因变量之间的关系,因此其应用领域十分广泛。以下是一些常见的应用领域:
|应用领域|具体应用|
| ---- | ---- |
|经济领域|预测GDP、通货膨胀率、失业率、消费者支出、固定资产投资支出、流动资产需求等|
|金融领域|预测股票价格、分析市场趋势、评估投资组合的表现、预测量化投资风险等|
|营销领域|分析营销变量(如广告支出、销售量和客户满意度)之间的关系|
|医疗保健领域|预测流行病、分析疾病因果关系、分析治疗效果以及识别疾病的风险因素|
|环境科学领域|进行环境预测、环境监测和环境评估|
|社会科学领域|研究社会变量(如教育、收入和健康)之间的关系|

3. 聚类任务

聚类,即聚类分析,属于无监督学习范式。接下来为大家介绍聚类任务的相关内容。

3.1 聚类问题与定义

聚类问题存在于多个领域。例如,在医学领域,聚类用于医学图像分析、医学图像分割和三维重建;在商业和营销领域,通过聚类分析对客户或商品进行分组;在万维网中,聚类方法用于社交网络分析和搜索结果分组;在信息过滤和检索领域,聚类可用于场景分割和构建推荐系统。

聚类的定义为:在机器学习中,聚类是基于一定标准分析输入数据,并将其划分为若干组(称为簇)的任务。这些簇事先未知,但同一簇内的数据存在一定的相关性。聚类与分类本质上不同,分类有带标签的训练样本,且类别和数量在分类前就已确定;而聚类没有带标签的训练样本,簇和数量是根据输入数据的某些相关性通过一定标准分析得到的。聚类与分类的异同如下表所示:
|比较项目|聚类|分类|
| ---- | ---- | ---- |
|划分依据|根据一定标准将输入数据划分为簇|将输入数据划分为预定义的类别|
|簇/类别情况|簇和数量事先未知|类别和数量事先已知|
|训练样本|无带标签的训练样本|有带标签的训练样本|

3.2 工作原理

为了更好地理解聚类任务,下面从形式化描述和图示说明两方面进行介绍。

形式化描述
设 (R^m (m \geq 1)) 表示m维实向量的集合,(X \subseteq R^m) 为输入空间,(G \subseteq R^m) 为输出空间。假设有一个包含n个独立同分布(i.i.d.)数据的数据集,且其簇和数量未知,可表示为:
[D = {x_i | i = 1, …, n} \subseteq X]
设 (H) 表示聚类的假设集合,目标是找到一个最优的聚类假设 (h \in H),它根据一定标准将输入数据划分为k个簇,即:
[h: X \to G]
使用上述聚类假设 (h(X)) 对数据集 (D) 进行聚类,得到一组k个簇 (G),即:
[G = {G_j | j = 1, …, k} \subseteq G]
其中 (G_j \subseteq D),且 (k \leq n)。

图示说明
聚类过程包含两个重要步骤:(i)聚类分析和(ii)结果验证。聚类分析的划分过程是根据一定标准将输入数据划分为若干簇。可以看出,聚类没有训练阶段,即没有带标签的样本作为训练数据。它直接使用聚类假设分析原始数据集,输出为划分好的簇。聚类模型的验证过程旨在评估聚类的质量和性能,必要时进行优化,并使用各种评估指标使聚类结果更合理。

其流程可以用以下mermaid流程图表示:

graph LR
    A[输入数据] --> B[聚类分析]
    B --> C[划分成簇]
    C --> D[结果验证]
    D --> E{是否需要优化?}
    E -- 是 --> B
    E -- 否 --> F[最终聚类结果]
3.3 相关元素

聚类方法可从不同角度进行划分。

硬聚类和软聚类
- 硬聚类:确定一个输入数据点是否属于某个簇,结果为确定值。
- 软聚类:确定一个输入数据点属于某个簇的程度,结果以可能性或模糊值表示。

线性和非线性聚类
基于聚类的数据分布,聚类问题可分为线性可分聚类和非线性可分聚类。
- 线性可分聚类:对线性可分数据集进行的聚类。
- 非线性可分聚类:没有类似线性可分聚类的限制。

3.4 经典聚类方法

经典聚类方法,也称为传统聚类方法,是较早提出的一些聚类方法。代表性的经典聚类方法包括基于层次的聚类、基于质心的聚类、基于分布的聚类、基于密度的聚类和基于网格的聚类。

基于层次的聚类
- 核心思想 :基于层次的聚类的核心思想是彼此距离更近的数据点之间关系更紧密。这类算法根据数据点之间的距离将输入数据点划分为若干簇,按照一定标准对一组数据点进行层次分解。一个簇主要通过连接簇内数据点的最大距离来描述,不同的距离形成不同的簇,可用树状图表示,因此称为“基于层次的聚类”。
- 自下而上与自上而下 :基于层次的聚类主要有两种方式,自下而上和自上而下。自下而上称为凝聚聚类,其算法是先将每个数据点视为一个单元素簇,然后将两个最接近的簇合并为一个更大的簇,重复此操作直到所有数据点成为一个最大簇的成员。自上而下则相反,是从根节点到叶节点的聚类过程,称为分裂聚类。自下而上的代表算法是AGNES(AGglomerative NESting),自上而下的代表算法是DIANA(DIvisive ANAlysis)。
- 链接准则 :基于层次的聚类有几种链接准则,可根据不同的距离计算方式进行区分。除了选择的距离函数外,还需要确定使用的划分标准。以下是三种代表性的链接准则:
- 单链接聚类:计算每个聚类元素之间的最小距离:
[min{dist(x, x’) | x \in G, x’ \in G’}]
- 全链接聚类:计算每个簇元素之间的最大距离:
[max{dist(x, x’) | x \in G, x’ \in G’}]
- 平均链接聚类:计算每个簇元素之间的平均距离:
[\frac{1}{|G| \cdot |G’|}\sum_{x \in G}\sum_{x’ \in G’}dist(x, x’)]

4. 典型聚类算法

除了上述经典聚类方法,还有一些典型的聚类算法,下面为大家详细介绍。

4.1 k - 均值聚类(k - means)

k - 均值聚类是一种基于质心的聚类算法,其核心思想是通过迭代的方式将数据点分配到k个簇中,使得每个数据点到其所属簇质心的距离之和最小。具体步骤如下:
1. 初始化 :随机选择k个数据点作为初始质心。
2. 分配数据点 :将每个数据点分配到距离其最近的质心所在的簇。
3. 更新质心 :计算每个簇中所有数据点的平均值,将其作为新的质心。
4. 重复步骤2和3 :直到质心不再发生变化或达到最大迭代次数。

4.2 高斯混合聚类

高斯混合聚类假设数据是由多个高斯分布混合而成的。每个高斯分布代表一个簇,通过估计每个高斯分布的参数(均值、协方差)来确定簇的形状和位置。具体步骤如下:
1. 初始化参数 :随机初始化每个高斯分布的参数(均值、协方差和权重)。
2. E步(期望步骤) :计算每个数据点属于每个高斯分布的概率。
3. M步(最大化步骤) :根据E步计算的概率,更新每个高斯分布的参数。
4. 重复步骤2和3 :直到参数收敛。

4.3 DBSCAN(基于密度的空间聚类应用)

DBSCAN是一种基于密度的聚类算法,它将具有足够密度的数据点划分为簇,并将低密度区域中的数据点视为噪声。具体步骤如下:
1. 定义参数 :定义邻域半径 (\epsilon) 和最小点数 (MinPts)。
2. 遍历数据点 :对于每个数据点,计算其邻域内的点数。
3. 标记核心点 :如果一个数据点的邻域内点数大于等于 (MinPts),则将其标记为核心点。
4. 扩展簇 :从一个核心点开始,将其邻域内的所有核心点和非核心点加入到同一个簇中,重复此过程直到无法扩展。
5. 标记噪声点 :将未被分配到任何簇的数据点标记为噪声点。

4.4 密度峰值聚类

密度峰值聚类是一种基于密度的聚类算法,它通过寻找数据点的密度峰值来确定簇的中心。具体步骤如下:
1. 计算密度 :计算每个数据点的局部密度 (\rho_i)。
2. 计算距离 :计算每个数据点到密度比它大的数据点的最小距离 (\delta_i)。
3. 确定簇中心 :选择 (\rho_i) 和 (\delta_i) 都较大的数据点作为簇中心。
4. 分配数据点 :将每个数据点分配到距离其最近的簇中心所在的簇。

5. 聚类评估指标

为了评估聚类结果的质量,需要使用一些评估指标。以下是几种常见的聚类评估指标:
|评估指标|含义|
| ---- | ---- |
|调整兰德指数(ARI)|衡量两个聚类结果之间的相似度,考虑了随机分配的影响|
|调整互信息(AMI)|衡量两个聚类结果之间的信息共享程度,考虑了随机分配的影响|
|Fowlkes - Mallows指数(FMI)|结合了精度和召回率的概念,衡量聚类结果的准确性|
|V - measure|综合考虑了同质性和完整性,衡量聚类结果的质量|
|Calinski - Harabasz指数(CHI)|衡量聚类结果的紧凑性和分离度,值越大表示聚类效果越好|
|Davies - Bouldin指数(DBI)|衡量聚类结果的紧凑性和分离度,值越小表示聚类效果越好|
|轮廓系数(SC)|衡量每个数据点与其所属簇的紧密程度和与其他簇的分离程度,值越接近1表示聚类效果越好|

6. 聚类任务的应用领域

聚类任务在多个领域都有广泛的应用,以下是一些具体的应用场景:
|应用领域|具体应用|
| ---- | ---- |
|图像识别|图像分割、目标检测等|
|文本挖掘|文档聚类、主题建模等|
|生物信息学|基因表达数据分析、蛋白质结构分类等|
|市场细分|客户细分、产品分类等|
|异常检测|检测异常数据点、网络入侵检测等|

7. 总结

回归和聚类是机器学习中非常重要的任务。回归任务通过损失函数评估模型性能,常见的损失函数有平均绝对误差、平均绝对百分比误差、平均偏差误差等,并且在经济、金融、营销等多个领域有广泛应用。聚类任务属于无监督学习范式,有多种聚类算法(如k - 均值聚类、DBSCAN等)和评估指标(如调整兰德指数、轮廓系数等),在图像识别、文本挖掘等领域发挥着重要作用。通过对这些知识的学习和应用,可以更好地解决实际问题,提高模型的性能和效果。

下面用mermaid流程图总结聚类任务的整体流程:

graph LR
    A[输入数据] --> B[选择聚类算法]
    B --> C[聚类操作]
    C --> D[得到聚类结果]
    D --> E[选择评估指标]
    E --> F[评估聚类质量]
    F --> G{是否满足要求?}
    G -- 否 --> B
    G -- 是 --> H[应用聚类结果]

希望通过本文的介绍,大家对回归和聚类任务有了更深入的理解和认识,能够在实际应用中灵活运用这些方法解决问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值