文章目录
- day05
- 分而治之中的MARS算法
- 神经网络逼近能力解释
day05
今天是第5天,昨日从统计分析开始利用统计学的知识判断当前样本的分布以及估计总体的参数和假设检验的情况,以及介绍了线性回归算法的相关优化点,但是毕竟线性回归是线性划分的,实际情况很多是非线性的,比如温度对故障可能在低温没什么影响但是高温却急剧的增加影响,这就需要分区进行建模,今天将学习多元自适应回归样条算法(MARS)以及神经网络算法(该小节只讲述了部分,后面会有专门的深度学习小节)
分而治之中的MARS算法
相比较传统的线性回归最大的不同在于将数据分为不同区间,然后在每个区间内进行局部的线性回归,具体来说:
-
数据划分(分区间):
- 在传统的线性回归中,我们假设所有的数据点都符合一个统一的线性关系(比如
y = a * x + b
)。但实际上,数据中可能存在非线性关系,例如温度对故障的影响,在低温区间可能没有太大影响,但在高温区间可能会急剧增加故障风险。 - MARS 会将数据分成多个区间(或者叫“段”)。每个区间的线性关系可能不同,它会在不同的区间内用不同的线性方程来拟合数据。
- 在传统的线性回归中,我们假设所有的数据点都符合一个统一的线性关系(比如
-
基函数(分段线性回归):
-
MARS 的每个区间都有一个 基函数,这些基函数通常是分段的线性函数。例如,假设我们正在研究温度(
T
)与故障之间的关系,MARS 可能会根据温度的不同值划分为多个区间,并在每个区间内使用线性回归来拟合数据。 -
比如:
-
当
T < 30
时,模型可能是故障风险 = a1 * T + b1
-
当
30 ≤ T < 35
时,模型可能是故障风险 = a2 * T + b2
-
当
T ≥ 35
时,模型可能是故障风险 = a3 * T + b3
-
-
每个区间内都有自己的一组参数(
a1
,b1
,a2
,b2
, 等),这些参数会根据该区间的数据来确定。
-
-
如何选择分裂点?
-
逐步建模和剪枝:在前向建模过程中,MARS 会不断添加新的基函数来提高模型的精度,每加一个新的分段模型,都会计算模型的误差,直到误差不能再显著下降。然后,后剪枝会去除一些对模型贡献较小的基函数,保持模型的简洁性,避免过拟合。
特点 | 线性回归 | MARS |
---|---|---|
拟合关系 | 线性关系(y = ax + b) | 非线性关系(通过分段线性回归拟合) |
模型复杂度 | 简单,只有一个公式 | 较复杂,多个分段回归模型 |
处理非线性能力 | 只能处理线性关系 | 能自动处理复杂的非线性关系 |
模型解释性 | 易于理解,参数(a, b)有明确物理意义 | 较复杂,但每个分段也有物理意义 |
计算复杂度 | 计算速度快,适合小数据 | 计算较慢,适合复杂问题 |
适用场景 | 数据关系简单,线性 | 数据关系复杂,有多段不同的线性关系 |
举例说明:假设正在做一个机房故障预测模型,其中有两个变量:温度(T) 和 湿度(H),并且你发现它们与故障之间的关系可能不是简单的线性关系。比如:
- 当温度低于某个值时,湿度对故障影响较小。
- 但当温度超过某个阈值时,湿度对故障的影响会急剧增加。
传统的线性回归只能拟合一个整体的线性关系(例如 故障风险 = a1 * T + a2 * H + b
),但它可能无法准确捕捉到温度和湿度之间的这种非线性交互关系。MARS 会根据数据自动选择适合的温度和湿度的分裂点(例如 T = 30
,H = 50%
),并在每个区间内使用不同的线性回归模型来拟合数据,这样就能更精确地捕捉到不同环境条件下的故障风险。
下面是对比类似的算法,都是采用:分而治之的思想
算法 | 基本原理 | 优点 | 缺点 | 举例 |
---|---|---|---|---|
MARS | 数据分成多个区间,每个区间用简单的线性回归来拟合。 | 适应非线性关系,能够处理高维数据。 | 模型划分和边界处理较复杂,计算量大。 | 比如在机房温湿度监控中,不同时间段和不同区域的温湿度影响因素不同,可以根据不同时间段(如白天、夜晚)和区域(如机架区、空调区)建立不同的线性模型。 |
CART | 通过递归分割数据,按不同条件划分每个区域,进行回归或分类。 | 简单直观,结果易于解释。 | 容易过拟合,需要剪枝,无法处理复杂非线性。 | 在机房电力负荷预测中,根据温湿度、设备运行状况等条件,递归划分数据,判断不同条件下的负荷预测。比如当温度高于某一阈值时,负荷增加,模型会根据这些条件做决策。 |
PPR | 将数据投影到低维空间,再用多个非线性函数组合进行拟合。 | 能处理复杂的非线性关系。 | 计算复杂,模型解释性差。 | 在机房空调系统的能效预测中,温度、湿度、设备负载等多个因素共同作用,PPR可以将这些复杂的因素投影到低维空间,通过多个非线性函数综合分析,预测空调系统的能效表现。 |
神经网络逼近能力解释
本节重点针对的是ANN,不做其他讨论,我们都知道ANN是一个三层结构的网络,包括输入层、隐含层和输出层,可以做分类、回归任务,所以在增加隐含层节点的前提下,ANN算法具有无限的函数逼近的能力,但是如何理解其逼近能力?神经元通常采用sigmoid作为激活函数.
-
当权重参数很大时,sigmoid函数的输出会趋近于0或1,这样它的行为就像一个阶跃函数了。简单来说,当权重很大时,sigmoid函数的曲线变得几乎是一个“断崖”,这使得它能做类似阶跃函数的决策。
- Sigmoid函数:形状像"S"字母的曲线,它的输出范围是(0, 1),对于较大的输入值,它的变化就会变得非常陡峭。
- 阶跃函数:是一个非常简单的函数,当输入超过某个阈值时输出为1,否则输出为0。它像一个“开关”,只输出两个值。
-
多个阶跃函数通过不同的偏移参数和加权,可以构成复杂的分段函数
- 在神经网络中,每个神经元可以看作是一个小的决策单元,如果我们用多个神经元的阶跃函数(或sigmoid等函数)组合起来,就能够在不同的输入范围内形成不同的输出,这些不同的输出在一起就构成了一个复杂的分段函数。
- 分段函数:在不同的区间内,函数的表现不同。神经网络通过多个层次的神经元,每层可以通过不同的加权和偏移,形成对输入的不同处理,从而逼近复杂的目标函数。
-
实际的ANN模型不是简单的分段逼近,而是通过损失函数的梯度下降与反向传播
- 梯度下降:是一种优化方法,用来最小化神经网络输出与目标值之间的差距(即损失)。通过计算梯度并更新参数,逐步调整权重和偏置,使网络的预测越来越准确。
- 反向传播:在训练过程中,通过反向传播算法计算误差的梯度,并利用梯度下降方法来更新每一层神经元的参数。反向传播确保网络能够根据数据中的模式调整其内部结构。
ELM的模型结构和ANN一致,但是训练参数(输入层、隐含层)阶段和输出层权重计算方式不一样,可查验下表,核心就是输入层、隐含层参数随机固定,计算输出层就把问题转换为了简单的线性问题。所以ELM算法比传统神经网络的准确度偏差,但是计算量低很多,可以用在一些需要即时计算的场景。
特性 | 极限学习机(ELM) | 人工神经网络(ANN) |
---|---|---|
参数训练 | 只训练输出层的权重,隐藏层权重随机初始化且固定 | 训练所有层的权重和偏置,通过反向传播调整 |
求解参数 | 通过线性方法(如最小二乘法)直接求解输出层权重 | 通过梯度下降和反向传播迭代求解所有参数 |