预测模型及超参数:2.传统机器学习:PLS及其改进

把PLS与SVR、KNN统一归为传统机器学习并不严谨,但是符合模型的复杂程度。继续该系列第一篇的例子,我们来探讨一下PLS及其改进方法。

一、原始PLS

我们经营着一家水果商店,目标是根据水果的外观(如形状、颜色、大小等特征)预测水果的甜度(一个连续值,比如 0 到 10)。为了实现这个目标,我们采集了大量水果的光谱数据(比如 1024 个波长的反射率),但面临以下问题:

  1. 特征维度太高:我们记录了 1024 个波长特征,但实际样本数量只有 100 个,特征比样本多得多。
  2. 特征间高度相关:很多波长的数据可能高度相关(比如相邻波长的反射率非常相似),导致传统的回归算法(如线性回归)失效。
  3. 目标变量的解释性不足:我们不知道哪些波长对甜度的影响最大。

在这种情况下,偏最小二乘回归(PLS) 是一个非常合适的选择。PLS 模型可以同时解决高维问题和特征间的多重共线性问题。

PLS 的核心思想是:
从原始特征中提取少量的"潜在变量",这些变量不仅能代表原始数据的主要信息,还与目标变量(甜度)高度相关。

  • 这些潜在变量是原始特征的线性组合,用数学公式表示为:T=XW

其中,T是提取出的潜在变量矩阵,X是原始特征矩阵,W 是线性组合的权重矩阵。

  • 提取出潜在变量后,我们在低维空间中建立一个线性回归模型,用来预测目标变量 Y:Y≈TQ

其中,Q是回归系数矩阵。

这一过程既保留了原始特征的重要信息,又增强了它们与目标变量的关联性。

模型的超参数解释:

1. n_components(潜在变量数量)

  • 作用:决定从原始特征中提取多少个潜在变量。
  • 通俗解释
    假设我们记录了 1024 个特征,n_components 决定提取出几个与甜度高度相关且能代表原始特征的潜在变量。比如:
    • 如果 n_components=2,模型会提取出 2 个潜在变量,这 2 个变量是 1024 个特征的线性组合,与甜度高度相关。
    • 如果 n_components=10,模型会提取出 10 个潜在变量。
  • 数学 性解释
    • 每个潜在变量 ti的计算公式为:ti=Xwi 。其中,ti是第 i个潜在变量,wi是特征的投影方向向量。
    • PLS 模型通过找到 wi,确保提取的潜在变量既能解释特征矩阵 X的主要信息,又能最大程度地关联目标变量 Y。
  • 取值范围
    • ncomponents的最大值为特征数量或样本数量的较小值。
    • 常见取值为 2-10,取值太大会导致过拟合。
  • 如何选择
    • 如果 ncomponents太小,模型可能无法充分解释数据(欠拟合)。
    • 如果 ncomponents 太大,模型可能包含冗余信息(过拟合)。

在水果商店的例子中

假设我们设置 n_components=2,这意味着模型会提取出两个关键潜在变量,比如:

  • 第 1 个潜在变量可能代表水果的整体颜色。
  • 第 2 个潜在变量可能代表水果的光泽度。

这两个变量既减少了维度,又与甜度高度相关。

二、KPLS

****核偏最小二乘回归(KPLS)****引入了非线性映射的能力,通过核技巧对数据进行高维投影,使得模型能够捕捉到复杂的非线性关系,同时继承了 PLS 在处理高维数据和特征共线性问题上的优势。

KPLS 相比 PLS 的改进

1. 从线性到非线性

  • PLS 的限制:PLS 提取潜在变量(latent variables)时假设数据之间的关系是线性的,这在水果甜度的预测中可能无法满足实际需求。
  • KPLS 的改进 :通过核函数(Kernel Function),KPLS 将原始特征映射到一个隐式的高维空间(特征空间),在高维空间中提取潜在变量,从而捕捉非线性关系

2. 核函数带来的灵活性

  • 非线性映射:KPLS 使用核矩阵 K代替原始特征矩阵 X,从而不需要显式地计算高维空间中的特征,而是通过核函数直接计算特征之间的相似度。
  • 适应复杂问题:例如,水果的光谱数据可能与甜度呈现复杂的非线性关系(如某些波长的联合作用),KPLS 的核技巧可以很好地捕捉这种非线性。

3. 对小样本适应性更强

  • 在样本数量较少(如 100 个水果样本)而特征维度较高(如 1024 个波长数据)时,KPLS 能通过核函数构造相关矩阵,有效规避维度灾难问题。

模型参数解析

1. n_components(潜在变量数量)

  • 作用 :决定从核矩阵中提取的潜在变量(latent variables)的数量。
    • 通俗解释
      在水果商店的例子中,假设我们有 1024 个特征。KPLS 会将原始数据映射到特征空间,并提取出数量为 n_components 的潜在变量。例如:
      • 如果 n_components=2,模型会提取出 2 个非线性的潜在变量,如:
        • 第 1 个潜在变量可能代表水果的整体颜色对甜度的影响。
        • 第 2 个潜在变量可能代表水果的光泽度或其它特征对甜度的影响。
      • 如果 n_components=10,模型会提取出 10 个潜在变量,可能代表更复杂的特征组合。
  • 数学解释
    每个潜在变量 ti是核矩阵 K 的线性组合,且与目标变量 Y的相关性最大化。
  • 取值范围
    • ncomponents ≤ min(样本数量,特征数量)。
    • 通常设置为 2-10,以避免过拟合。
  • 选择建议
    • 如果 n_components 太小,模型可能无法充分解释数据(欠拟合)。
    • 如果 n_components 太大,模型可能会引入噪声(过拟合)。

2. gamma(核函数参数)

  • 作用:控制核函数(如 RBF 核)的"带宽",影响相似度的计算方式。
  • 通俗解释
    gamma 决定两点之间的相似度随距离变化的速度。在水果商店中:
    • 如果 gamma 很大(如 0.1),即使波长反射率的差距很小,模型也会认为它们不相似。
    • 如果 gamma 很小(如 0.0001),即使波长反射率差距很大,模型也可能认为它们相似。
  • 数学解释
    对于 Radial Basis Function (RBF) 核函数,核矩阵的元素计算公式为:

K(xi​,xj​)=exp(−γ||xi​−xj​||2)

    • γ 控制了两个样本之间的距离对相似度的影响。
  • 取值范围
    • γ>0,通常在 10−5 到 10−1 之间。
    • 使用对数尺度调整(如代码中的 log=True)。
  • 选择建议
    • gamma 越大,模型越偏向于局部拟合(关注小范围相似性)。
    • gamma 越小,模型越偏向于全局拟合(关注整体相似性)。

3. K_train 和 K_test(核矩阵)

  • 作用:表示特征空间中样本之间的相似度。
  • 通俗解释
    在水果商店中,核矩阵用于描述两个水果样本之间的"相似度"。例如:
    • 如果两个水果的光谱数据非常相似(即波长反射率的差别很小),核矩阵中的相应值会很高。
    • 如果两个水果的光谱数据差别很大,核矩阵中的相应值会很低。
  • 数学解释
    核矩阵 K的每一项表示样本 xi 和 xj之间的相似性:Kij=ϕ(xi)⋅ϕ(xj),ϕ(xi) 表示样本 xi 的非线性映射。

4. dualpls(KPLS 的核心回归步骤)

  • 作用:在核空间中提取潜在变量,并进行回归。
  • 过程解释
    • 使用核矩阵 K提取潜在变量 τ,通过对 K进行迭代更新,使目标变量 Y 的残差逐渐减小。
    • 输出的回归系数 α 用于预测目标值。
  • 改进之处
    • 在核空间中执行 PLS 计算,能够捕捉复杂的非线性关系。

三、NNPLS

在处理高维光谱数据和复杂非线性关系时,传统的线性模型(如PLS)和非线性扩展模型(如KPLS)都存在一定的局限性。为此,NNPLS(神经网络偏最小二乘回归) 将神经网络引入到偏最小二乘回归中,用以更全面地捕捉特征与目标之间的复杂非线性关系,一般引入的神经网络就是简单的两层全连接。

1、核心参数

1****. hidden_layer_1 和 hidden_layer_2(隐藏层神经元数量)****

作用:控制神经网络的结构复杂度。

通俗解释

第一隐藏层(hidden_layer_1)可以看作是"水果特征提取器",通过学习原始特征(如

光谱波长的组合)来提取重要的非线性特征。

第二隐藏层(hidden_layer_2,可选)是"特征组合器",进一步将隐藏特征进行组合。若设置为 0,表示只使用单层网络。

与PLS和KPLS的区别

PLS 和 KPLS 都通过固定的线性方法提取潜在变量,而 NNPLS 灵活地通过神经网络学习非线性特征,可适应更复杂的模式。

建议取值

hidden_layer_1:在 10 到 200 之间,值越大越复杂。

hidden_layer_2:在 0 到 200 之间,如果关系较复杂,可考虑使用双层。

  1. activation(激活函数)

作用:控制神经网络每一层的输出如何映射到下一层,决定非线性的表达能力。

通俗解释

激活函数决定了神经网络"理解"水果特征的方式:

identity:纯线性映射,相当于传统的线性回归。

logistic:S型映射,适用于数据关系较平滑的场景。

tanh:强化非线性相关性,适用于数据分布较复杂的场景。

relu:对正值敏感,计算高效,适用于大数据集。

与PLS和KPLS的区别

PLS 是完全线性模型,KPLS 虽然可以通过核函数映射到非线性空间,但核函数形式是固定的。而 NNPLS 通过激活函数对非线性关系进行动态调整。

建议取值:根据数据分布选择,通常 relu 是默认推荐值。

3. solver(优化算法)

作用:控制神经网络的权重更新方式,影响训练收敛速度和结果稳定性。

通俗解释

lbfgs:一种优化方法,适合小数据集,计算速度快。

sgd:随机梯度下降法,适合大数据集,但可能需要更多迭代来收敛。

adam:自适应优化方法,适合大多数场景,综合表现较好。

与PLS和KPLS的区别

PLS 和 KPLS 使用的都是固定的线性或核回归方法,而 NNPLS 的优化方式更加灵活,可根据数据规模和复杂度选择不同算法。

建议取值:若不确定,推荐使用 adam。

4. max_iter(最大迭代次数)

作用:限制神经网络的训练次数,避免过长时间的计算。

通俗解释

就像告诉水果研究员:"最多尝试这么多次,超过了就停止。" 如果限制太低,可能导致训练未完成;但设置过高又可能浪费时间。

与PLS和KPLS的区别

PLS 和 KPLS 的训练过程通常较快,而 NNPLS 的训练复杂度较高,迭代次数可能显著影响训练结果。

建议取值:在 100 到 1000 之间,视数据复杂度而定。

NNPLS 参数总结表

|----------------|------------|---------------------------------------------------------|--------------------------------------------|
| 参数名 | 模型 | 通俗解释 | 取值范围 |
| hidden_layer_1 | NNPLS | 第一层隐藏层的神经元数量,相当于"水果特征提取器",提取复杂非线性特征。 | 10-200,步长为 10 |
| hidden_layer_2 | NNPLS | 第二层隐藏层的神经元数量,相当于"特征组合器",进一步组合之前提取的隐藏特征。可选,值为 0 时不启用第二层。 | 0-200,步长为 10 |
| activation | NNPLS | 激活函数,决定每层输出如何映射到下一层,控制模型的非线性表达能力。 | ['identity', 'logistic', 'tanh', 'relu'] |
| solver | NNPLS | 优化算法,用于更新神经网络的权重,影响训练的收敛速度和结果稳定性。 | ['lbfgs', 'sgd', 'adam'] |
| max_iter | NNPLS | 最大迭代次数,限制模型训练的尝试次数,避免训练时间过长。 | 100-1000 |

原始PLS及其改进的KPLS和NNPLS的严格推导如下视频,有兴趣的可以看看

PLS及改进方法的原理与超参数

相关推荐
fanstuck2 分钟前
2014-2024高教社杯全国大学生数学建模竞赛赛题汇总预览分析
大数据·人工智能·数学建模·数据挖掘·数据分析
Sugar_pp5 分钟前
【目标检测】论文阅读3
论文阅读·人工智能·目标检测
Sugar_pp8 分钟前
【目标检测】论文阅读4
论文阅读·人工智能·目标检测
勤劳的进取家9 分钟前
论文阅读:Gorilla: Large Language Model Connected with Massive APIs
论文阅读·人工智能·语言模型·自然语言处理·prompt
AKAMAI12 分钟前
了解视频处理单元(VPU)、图形处理器(GPU)与中央处理器(CPU)
人工智能·云计算
Y2003091620 分钟前
支持向量机核心知识总结
算法·机器学习·支持向量机
沃丰科技30 分钟前
沃丰科技出海客服系统对接沃尔玛全球电商平台,赋能中企出海
人工智能
nnerddboy36 分钟前
预测模型及超参数:1.传统机器学习:SVR与KNN
人工智能·机器学习
春末的南方城市1 小时前
统一虚拟试穿框架OmniTry:突破服装局限,实现多品类可穿戴物品虚拟试穿无蒙版新跨越。
人工智能·深度学习·机器学习·计算机视觉·aigc
aneasystone本尊1 小时前
GraphRAG 索引构建之文档处理
人工智能