# LIBS常用算法机器学习基础

> **本文定位**：从预处理、定性识别到定量分析的算法总览，以铁矿样品串联完整工作流。

**系列阅读路线**

- [算法原理与方法比较]({{< relref "blog/LIBS-detail/index.md" >}})
- [预处理尺度、评估指标与结果表达]({{< relref "blog/LIBS-operate/index.md" >}})
- [烧蚀、辐射与等离子体诊断]({{< relref "blog/LIBS-Physics/index.md" >}})
- [CF-LIBS 基础与假设]({{< relref "blog/CF-LIBS/index.md" >}})
- [CF-LIBS 实现步骤]({{< relref "blog/CF-LIBS-details/index.md" >}})

---

> **背景设定（贯穿全文的铁矿案例）**
> 假设我们用 LIBS 仪器对一批矿石样品打谱，每个样品在 200–900 nm 范围内采集一条光谱（约 12000 个波长点，即 12000 维变量）。样品标签已知一部分：
> - **类别标签**（用于定性/分类）：磁铁矿（Fe₃O₄）、赤铁矿（Fe₂O₃）、褐铁矿（FeO(OH)·nH₂O）、菱铁矿（FeCO₃）、以及混入的脉石（石英 SiO₂、方解石 CaCO₃）。
> - **含量标签**（用于定量）：用 XRF/化学法测得的 TFe（全铁）、SiO₂、CaO、Al₂O₃、P、S 等参考值。
>
>  LIBS 铁矿谱的典型特征：Fe 原子/离子线极多（Fe I 371.99、382.04、404.58、438.36 nm；Fe II 259.94、274.32 nm 等），且与 Ca、Si、Al、Mg 的谱线严重重叠，连续背景（轫致辐射+复合辐射）强，自吸收明显。这正是下面所有算法要解决的问题。

---

通过激光诱导击穿光谱（LIBS）获取光谱数据后，结合机器学习进行分类（如物质识别、产地溯源）或回归（如元素定量分析）是目前极其主流且高效的研究范式。

下面先介绍 LIBS 机器学习建模的完整流程，再依次展开预处理、定性分析、定量分析与铁矿应用实例。

---

### LIBS 机器学习分析完整步骤

#### 1. 数据预处理（重点：必须剔除异常数据）

LIBS 信号受激光能量波动、样品基体效应和环境影响很大，存在明显的“脉冲到脉冲（Shot-to-shot）”的不稳定性。


**异常数据剔除（必须进行）：** 在进行任何分析前，**强烈建议剔除异常光谱**。如果不剔除，异常点会严重拉偏模型的决策边界或回归曲线。常用的剔除方法包括：

**统计学方法：** 基于特定特征峰的强度，使用 法则或箱线图。

**多变量方法：** 对光谱进行主成分分析（PCA），利用 Hotelling's 统计量或马氏距离识别并剔除离群点。

**算法方法：** 孤立森林（Isolation Forest）或局部异常因子（LOF）。

**平滑与降噪：** 常用 Savitzky-Golay \(S-G\) 平滑或小波变换去除高频噪声。

**基线校正：** 去除由于轫致辐射等引起的连续背景（如多项式拟合或自适应迭代重加权惩罚最小二乘法 airPLS）。

**归一化/标准化：** 消除绝对强度波动的影响（如最大值归一化、全谱面积归一化或内标法）。

#### 2. 特征选择与降维

LIBS 光谱通常包含上万个波长点（高维数据），直接输入模型容易导致“维数灾难”和过拟合。

**降维：** 主成分分析（PCA）是最常用的无监督降维方法。

**特征选择：** 根据物理先验知识挑选目标元素的特征谱线，或使用变量投影重要性（VIP）、连续投影算法（SPA）、无信息变量消除（UVE）等算法筛选有用波长。
#### 3. 数据集划分（必须划分训练集和测试集）

**必须划分。** 这是评估机器学习模型是否真正具备预测能力（泛化能力）的基础。

**训练集（Training Set）：** 通常占总数据的 70%~80%，用于模型“学习”数据中的规律。

**测试集（Test Set）：** 占 20%~30%，**模型在训练阶段绝对不能看到这些数据**。它相当于最终的“期末考试”，用于检验模型在面对全新样品时的真实表现。

#### 4. 模型选择与构建

根据您的任务目标选择合适的算法：

**分类任务（如合金钢牌号识别、岩石分类）：** 支持向量机（SVM）、随机森林（RF）、K近邻（KNN）、人工神经网络（ANN）、偏最小二乘判别分析（PLS-DA）。

**回归任务（如测定土壤中重金属的浓度）：** 偏最小二乘回归（PLSR，LIBS领域最经典）、支持向量回归（SVR）、随机森林回归（RFR）、多层感知机（MLP）。

#### 5. 模型优化与验证（K折交叉验证与袋外估计的作用）

在训练集上训练模型时，我们需要寻找最佳的“超参数”（例如 SVM 的惩罚系数、PLS 的主成分个数、随机森林的树的数量）。这需要用到验证机制：


**K折交叉验证（K-Fold Cross-Validation）：**


**作用：** 解决数据量较少时的过拟合问题，并用于**超参数调优**。

**原理：** 将**训练集**平均分成 份（常用 5 折或 10 折）。每次拿其中 1 份作为内部验证集，其余份用于训练，重复 次。最后对 次的结果取平均。

**意义：** 它可以告诉你模型在当前参数下表现是否稳定，防止模型只是“死记硬背”了某一部分训练数据。

**袋外估计（Out-Of-Bag, OOB Estimation）：**

**作用：** 它是**基于 Bagging 算法（特别是随机森林 Random Forest）特有的一种内置验证方法**，相当于“免费的交叉验证”。

**原理：** 随机森林在构建每一棵决策树时，采用有放回抽样（Bootstrap）。数学上可以证明，每次抽样大约有 的样本没有被抽中用于建树，这些没被抽中的数据就是“袋外数据（OOB）”。

**意义：** 可以直接使用这 36.8% 的 OOB 数据来测试当前树的性能（即 OOB 误差）。如果使用随机森林，你甚至可以省略 K折交叉验证，直接通过 OOB 误差来评估模型性能和进行特征重要性排序，计算速度更快。
#### 6. 模型评估
使用测试集数据输入已经训练并调优好的模型，得出最终的评价指标。

**分类指标：** 准确率（Accuracy）、精确率（Precision）、召回率（Recall）、混淆矩阵（Confusion Matrix）。

**回归指标：** 决定系数（）、均方根误差（RMSE，包含 RMSEC 和 RMSEP）、平均绝对误差（MAE）。

> **必须划分训练集和测试集**，否则无法评估模型的真实泛化能力。
> **必须剔除异常数据**，因为 LIBS 脉冲的不稳定性会引入强烈的离群噪声，干扰模型学习。
> **K折交叉验证**用于在训练集中寻找最优参数，防止模型过拟合。
> **袋外估计（OOB）** 是随机森林等集成算法自带的“交叉验证”平替，用于快速评估模型误差和特征重要性。


### 一、光谱数据预处理（Spectral data preprocessing）

LIBS 原始谱 = 真实原子发射线 + 连续背景（baseline）+ 随机噪声 + 仪器漂移。预处理的目标是把"信号"从这三类干扰里剥出来。表中预处理对应的方法有：**Model-free algorithm、WT、SWT、WTD、CWT、L-M**，其中 WT 还兼做数据压缩。

#### 1. 无模型算法（Model-free algorithm）


在激光诱导击穿光谱（LIBS）分析中，由于等离子体早期的韧致辐射（Bremsstrahlung radiation）和电子离子复合辐射（Recombination radiation），光谱中不可避免地会产生一个宽泛的、连续的背景信号（即**基线**）。这种基线会抬高原子和离子的特征发射峰，严重影响定性和定量分析的准确性。

**无模型算法（Modelfree algorithm）**是指在不依赖于等离子体物理演化模型或特定全局数学函数（如预设的全局多项式方程）的前提下，纯粹依靠光谱数据本身的**形态学、统计学或频率特征**来分离并去除基线的方法。

以下是LIBS分析中几种最主流的无模型基线去除算法及其详细工作原理：

##### 不对称惩罚最小二乘法及其变体 \(ALS / airPLS\)

这可以说是目前光谱基线校正中最强大、使用最广泛的无模型算法家族。


**基本原理 \(ALS  Asymmetric Least Squares\)：** 常规的最小二乘法会将拟合曲线穿过数据的中心（包含峰值）。而不对称最小二乘法通过引入**非对称权重**来解决这个问题。在每次迭代中，如果原始数据点高于拟合出的基线（说明该点可能是特征峰），算法会赋予它极小的权重；如果数据点低于拟合线（说明该点属于基线），则赋予极大的权重。 它的目标函数包含两部分：保真度（与原数据的差异）和粗糙度（基线的平滑程度），公式表示为：
其中 是原始光谱， 是拟合基线， 是权重， 是控制基线平滑度的惩罚系数。

**进阶变体 \(airPLS  适应性迭代重加权惩罚最小二乘法\)：** 由于基础的ALS需要手动调节权重参数，airPLS进行了改进。它不需要用户提供峰值区域的先验信息，而是能够在迭代过程中**自适应地更新权重向量**。对于LIBS这种谱峰密集、基线起伏大的复杂光谱，airPLS通常能表现出极高的鲁棒性。

##### 数学形态学滤波 \(Mathematical Morphology / TopHat 变换\)

这种方法将一维的光谱数据视作图像，通过类似于“滑动窗口”的形态学操作来过滤掉峰值，只保留宽泛的背景。


**腐蚀 \(Erosion\)：** 使用一个宽度为 的结构元素（窗口）在光谱上滑动，将窗口中心点的值替换为窗口内的**最小值**。这一步会把所有宽度小于 的特征峰“削平”，但同时也会导致整体光谱向下偏移。

**膨胀 \(Dilation\)：** 在腐蚀的基础上，用同样的窗口滑动，将中心点替换为窗口内的**最大值**。这一步能将下移的基线重新抬升回原来的高度，但由于峰已经被削平，抬升上来的只有宽泛的基线。

**开运算与顶帽变换 \(TopHat Transform\)：** 先腐蚀后膨胀的过程称为“开运算”（Opening），它拟合出的就是光谱的基线。 将原始LIBS光谱减去开运算得到的基线，就是去除了基线的纯净发射峰光谱（即顶帽变换的结果）。

**关键点：** 结构元素（窗口）的宽度必须略大于光谱中最宽的特征峰，否则宽峰会被误认为基线而保留下来。

##### 敏感非线性迭代峰值裁剪算法 \(SNIP\)

SNIP（Statisticssensitive Nonlinear Iterative Peakclipping）最初用于X射线荧光光谱（XRF），后来被广泛引入LIBS领域。它是一种极其直观的“削峰”算法。


**基本原理：** SNIP算法通过多次迭代来逐步“剪掉”高于基线的峰。在每一次迭代中，算法会检查每一个数据点 。它会提取该点左右两侧距离为 的两个点： 和 。 如果中心点的值大于两侧点的平均值（即 ），算法就会强行将 替换为这个平均值或经过特定非线性转换的值。

**迭代效果：** 随着迭代次数的增加和窗口 的动态变化，像针尖一样的特征峰会迅速被削平，最后剩下的包络线就是平滑的连续背景基线。

##### 小波变换法 \(Wavelet Transform\)

小波变换是基于**频率特征**分离基线和特征峰的无模型方法。


**基本原理：** 在频域中，LIBS光谱的尖锐特征峰和随机高频噪声属于**高频信号**，而缓慢起伏的连续背景基线属于**低频信号**。

**处理过程：** 通过选择合适的小波基（如 Symlets 或 Daubechies 小波），将原始光谱进行多尺度分解。分解后，光谱被分成“近似系数”（Approximation，低频部分）和“细节系数”（Detail，高频部分）。 算法将包含峰值的高频细节系数置零或削弱，然后仅使用低频近似系数进行**小波重构**。重构出的平滑曲线即为估计出的基线。

##### 主流算法对比总结

| 算法名称 | 核心逻辑 | 优点 | 缺点 / 挑战 |
|---|---|---|---|
| **airPLS / ALS** | 统计学：不对称权重迭代，强行平滑非峰值区域 | 精度极高，自适应性强，保留峰形完美 | 存在控制平滑度的超参数（），极端密集峰区域可能出现基线过拟合 |
| **形态学 \(TopHat\)** | 几何形态学：利用固定宽度的滑动窗口削平窄峰 | 速度快，逻辑简单，对硬件计算要求极低 | 窗口尺寸敏感：如果LIBS光谱中同时存在极宽和极窄的峰，单一窗口很难兼顾 |
| **SNIP** | 数学迭代：邻域均值替换，逐步“剪断”峰顶 | 适合处理极强背景和极窄峰组合的光谱 | 迭代次数需要人工摸索，容易在光谱两端产生“边缘效应” |
| **小波变换** | 信号处理：高低频分解重构 | 不仅能去基线，还能顺带完成降噪处理 | 小波基函数和分解层数的选择高度依赖使用者的经验 |

在现代LIBS数据处理流水线中，**airPLS** 由于其极高的自动化程度和优异的扣除效果，通常被作为首选的无模型基线去除方案。


**铁矿示例**：Fe II 259.94 nm 附近连续背景很高（等离子体早期轫致辐射），用 airPLS 自动把这条缓变背景扣掉，而不去人为指定"哪几个点是无峰区"——这对铁矿这种"几乎处处有线"的复杂谱特别有用，因为根本找不到干净的背景窗口。

#### 2. 小波变换 WT（Wavelet Transform）—— 兼做去噪与压缩

**什么是“小波” (Wavelet)？**
顾名思义，“小波”就是一个“小小的波”。与无限长的正弦波不同，小波是一种能量集中在很短时间范围内的波形。它的振幅从零开始，迅速增大，然后又迅速衰减回零。
小波变换的核心操作是对这个“小波”进行两种变化，然后用它去和原始信号进行对比匹配：
**平移** (Translation, 用 $b$ 表示)： 把小波在时间轴（或光谱的波长轴）上左右移动。这解决了“特征在哪里发生”的问题。
**缩放 / 尺度伸缩** (Scaling, 用 $a$ 表示)： 把小波拉宽或者压窄。
压窄（小尺度）： 相当于高频，用来捕捉信号中瞬间突变的细节（如LIBS中的尖锐光谱峰或高频噪声）。
拉宽（大尺度）： 相当于低频，用来捕捉信号中缓慢变化的全局特征（如LIBS中的连续背景基线）。3. 小波变换的数学表达在连续小波变换（CWT）中，信号 $x(t)$ 的小波变换公式定义为：$$W(a, b) = \frac{1}{\sqrt{\vert{}a\vert{}}} \int_{-\infty}^{\infty} x(t) \psi^* \left( \frac{t - b}{a} \right) dt$$$x(t)$ 是你要分析的原始信号。$\psi(t)$ 是母小波（Mother Wavelet），即你选定的那个基础的小波形状。$a$ 是尺度因子（拉宽/压窄），$b$ 是平移因子（左右移动）。
积分的过程本质上是一个内积（相关性计算）。它计算的是：在特定的位置 $b$ 和特定的缩放比例 $a$ 下，你的小波和原始信号有多像？越像，计算出来的小波系数 $W(a, b)$ 就越大。

**离散小波变换 (DWT) 与多分辨率分析**
在计算机处理实际数据（如数字光谱）时，我们不可能计算连续的无穷多个尺度和平移。因此，我们使用的是离散小波变换 (Discrete Wavelet Transform, DWT)。DWT 的核心实现机制叫做多分辨率分析（Mallat 塔式算法），它就像是一组筛孔大小不同的筛子：信号会通过两个滤波器进行分解：
低通滤波器 (Low-pass filter)： 滤掉高频，留下缓慢变化的部分，得到近似系数 (Approximation, $A$)。
高通滤波器 (High-pass filter)： 滤掉低频，留下剧烈变化的部分，得到细节系数 (Detail, $D$)。

**小波变换如何去除光谱基线？**
结合上面的多层分解理论，小波变换去除LIBS基线的逻辑就非常清晰了：
**分解 (Decomposition)**： 将含有复杂背景的LIBS光谱信号进行多层离散小波分解。
**定位基线**： 经过 $n$ 层分解后，最底层的近似系数 $A_n$ 包含了信号中频率最低、变化最平缓的部分——这恰恰就是我们要找的连续背景基线。
**定位特征**： 那些高频的细节系数 ($D_1$ 到 $D_n$) 则包含了尖锐的元素发射峰（以及仪器的随机噪声）。
**重构 (Reconstruction)**： 如果我们要提取基线，就直接反推 $A_n$；如果我们要得到去除了基线的纯净光谱，就把 $A_n$ 剔除，仅用细节系数重新组合还原信号。

相比于傅里叶变换“一刀切”的频率分离，小波变换在时域（波长域）和频域都拥有极高的分辨率，它不仅能把基线“剥”下来，还能顺手把高频的随机噪声也过滤掉，是一种一举两得的信号处理武器。

#### 3. 平稳小波变换 SWT（Stationary Wavelet Transform）

在你了解了离散小波变换（DWT）的“分层滤波”原理后，理解平稳小波变换（Stationary Wavelet Transform, SWT）就非常顺理成章了。

平稳小波变换，在学术界也常被称为**非抽取小波变换（Undecimated Wavelet Transform, UWT）**或**平移不变小波变换**。它的出现，纯粹是为了解决标准离散小波变换（DWT）中的一个致命缺陷。

##### 为什么需要 SWT？（DWT的“平移突变”缺陷）

回顾一下 DWT 的工作机制：信号经过高通/低通滤波器后，数据量会进行**下采样（Downsampling，或称抽取）**。即每隔一个数据点丢弃一个，以此来减少计算量和存储空间（尺度变大，数据量减半）。

但这带来了一个严重的问题：**平移变异性（ShiftVariance）**。 假设你有一段包含一个微小发射峰的光谱信号，如果你稍微改动一下测量的起始点，让整个信号向左或向右**平移了仅仅 1 个数据点**，DWT 计算出来的小波系数就会发生**天翻地覆的变化**。

在信号降噪或去除基线时，这种特性会导致重构后的信号在峰值边缘出现剧烈的震荡（这被称为**伪吉布斯现象**或**振铃效应**），原本平滑的基线会变得坑坑洼洼，特征峰的形状也会被扭曲。

##### SWT 是如何工作的？（核心机制）

为了解决平移突变的问题，SWT 采取了一种简单粗暴但极其有效的策略：**干脆不进行下采样。**

这就引出了一个矛盾：如果不把信号缩短（下采样），我们怎么实现小波的“尺度伸缩（拉宽小波）”呢？SWT 使用了著名的多孔算法（Algorithme à trous）来解决这个问题。


**DWT 的做法（缩信号）：** 滤波器不变，把信号砍半。

**SWT 的做法（撑大滤波器）：** 信号长度始终保持不变。为了实现“大尺度”的分析，算法会在滤波器的系数之间**插入零（也就是打孔，à trous）**。


第 1 层：使用原始滤波器 `[h1, h2, h3]` 处理信号。

第 2 层：在滤波器中插零，变成 `[h1, 0, h2, 0, h3]` 处理信号。

第 3 层：继续插零，变成 `[h1, 0, 0, 0, h2, 0, 0, 0, h3]` 处理信号。

这样一来，**在 SWT 的每一层分解中，得到的近似系数和细节系数的长度，都和原始信号一模一样**。


上图\(a\)为SWT系数，长度始终不变；下图\(b\)为DWT系数，逐层减半且变得稀疏. 来源：ResearchGate

##### SWT 与 DWT 的直观对比

| 特性 | 离散小波变换 \(DWT\) | 平稳小波变换 \(SWT\) |
|---|---|---|
| **下采样 \(抽取\)** | 有（每层丢弃一半数据） | **无（保留所有数据）** |
| **平移不变性** | 无（信号微移导致结果大变） | **有（极其稳定）** |
| **系数长度** | 逐层减半 | **每层都等于原始信号长度** |
| **数据冗余度** | 无冗余（正交） | **高度冗余** |
| **计算速度与内存** | 极快，占用内存小 | 较慢，占用内存随层数成倍增加 |

##### 为什么 SWT 在光谱分析（如 LIBS）中如此重要？

尽管 SWT 牺牲了计算速度和存储空间（引入了大量冗余数据），但在处理高精度的科学数据时，这完全是值得的：

**完美的峰形保留：** 由于没有下采样，SWT 不会丢失任何位置信息。在对 LIBS 或拉曼光谱进行降噪和基线去除重构时，它能完美保留尖锐特征峰的原始高度、宽度和对称性，不会产生烦人的振铃伪影。

**更精准的阈值处理：** 在每一层尺度上，SWT 的系数都能和原始光谱的波长点**一一对应**。这使得我们可以非常精准地定位到底哪个位置是噪声、哪个位置是信号，从而进行精细的阈值过滤。

**多尺度特征追踪：** 因为所有层的系数长度一致，你可以垂直对比某个特定波长在不同层（不同频率）下的表现，这对于复杂重叠峰的解析非常有帮助。

简而言之，如果是为了**数据压缩或快速传输**，选 DWT；如果是为了**高保真的信号降噪、特征提取和基线分离**，平稳小波变换（SWT）是绝对的上位替代方案。


**铁矿示例**：铁矿谱中 Fe I 438.36 nm 这种弱峰，用 DWT 去噪时可能因峰位与采样网格不对齐而被抹掉；改用 SWT 后该峰稳定保留，提升后续低含量 Fe 线用于定量的可靠性。

#### 4. 小波阈值去噪 WTD（Wavelet Threshold Denoising）

**原理**：噪声在小波域表现为**幅值小、遍布各系数**，而真实峰表现为**少数幅值大的系数**。因此对细节系数设阈值：小于阈值的置零（或收缩），大于阈值的保留，即可滤噪。阈值规则有**硬阈值**（ $|c|<T$ 置 0，否则不变，去噪强但有振铃）和**软阈值**（ $|c|<T$ 置 0，否则 $\text{sign}(c)(|c|-T)$ ，更平滑）。阈值 $T$ 常用通用阈值 $T=\sigma\sqrt{2\ln N}$ ， $\sigma$ 由第一层细节系数稳健估计： $\sigma=\text{median}(|cD_1|)/0.6745$ 。

**实现步骤**：

1. DWT 或 SWT 分解。
2. 估计噪声水平 $\sigma$ ，计算各层阈值 $T_j$ （可用 Stein 无偏风险 SURE、BayesShrink 自适应逐层阈值）。
3. 对每层 cD\_j 施加软/硬阈值。
4. IDWT 重构得去噪谱。

**铁矿示例**：LIBS 单发脉冲信噪比低（铁矿中微量元素 P、S 的线常被噪声淹没）。对 50 发平均谱再做 WTD（软阈值、BayesShrink），可在不损失 Fe 主峰分辨率的前提下，把 P I 213.6/214.9 nm 弱线从噪声中提出来，为后续 P 定量打基础。

#### 5. 连续小波变换 CWT（Continuous Wavelet Transform）—— 用于分辨重叠峰

**原理**：CWT 在**连续尺度**上计算小波系数 $W(a,b)=\frac{1}{\sqrt{a}}\int y(t)\psi^*(\frac{t-b}{a})dt$ ，得到尺度—位置图（scalogram）。关键技巧：当母小波取**与峰形匹配的二阶导数型（如 Mexican hat / Ricker 小波，即高斯二阶导）**时，CWT 在某个尺度上，**每个真实峰对应系数图上的一个局部极大（或过零点）**，而重叠在一起的峰在细尺度上会被"分开"。因此 CWT 是**峰检测与重叠峰分辨**的利器，等价于在多个尺度上做匹配滤波。

**实现步骤**：

1. 选 Ricker/Mexican-hat 小波，设定尺度范围 $a\in[a_{min},a_{max}]$ （对应峰宽范围）。
2. 计算 scalogram $W(a,b)$ 。
3. 在"脊线"（ridge，沿尺度方向的极大连线）上提取峰位 $b$ 与峰宽（由最优尺度 $a$ 换算 FWHM）。
4. 对重叠区，用提取出的峰位/峰宽作为初值，喂给后续拟合（如 L-M）做精确分解。

**铁矿示例**：Fe I 371.99 nm 与邻近的 Ca/Si 线、以及 Fe I 404.58 nm 与 Cr I 404.58 nm（同位/近同位重叠）在原始谱上是一个"胖峰"。用 CWT（Ricker 小波）在细尺度 scalogram 上能看到两个分立的极大，从而判定这里是两条线而非一条，避免把 Cr 的强度错算到 Fe 上（铁矿中 Cr 是常见伴生元素，错算会污染 TFe 模型）。

#### 6. Levenberg-Marquardt（L-M）算法 —— 用于重叠峰拟合分解

**原理**：L-M 是求解**非线性最小二乘** $\min_\beta \sum_i [y_i - f(x_i;\beta)]^2$ 的迭代法，介于高斯-牛顿法与梯度下降法之间，通过阻尼因子 $\mu$ 自适应切换： $\mu$ 小→接近高斯-牛顿（快但需初值好）， $\mu$ 大→接近梯度下降（稳但慢）。在光谱中， $f$ 是**峰形模型之和**，如多个 Voigt/Lorentz/Gauss 峰 \+ 多项式背景： $f(\lambda)=\sum_k A_k \cdot V(\lambda;\lambda_{0k},w_k) + \sum_m p_m \lambda^m$ 。L-M 同时优化所有峰的幅值 $A_k$ 、中心 $\lambda_{0k}$ 、半宽 $w_k$ 和背景系数 $p_m$ ，从而把重叠峰"数学拆开"。

**实现步骤**：

1. 用 CWT 或先验谱线表给出初值（峰位、峰宽、幅值），用 airPLS 给出背景初值。
2. 选定峰形函数（LIBS 受 Stark 加宽\+仪器加宽，常用 Voigt 或 Lorentz）。
3. 构造残差向量 $r(\beta)=y-f(\beta)$ 与 Jacobian $J$ 。
4. 迭代求解正规方程 $(J^TJ+\mu\,\text{diag}(J^TJ))\delta = J^T r$ ，更新 $\beta\leftarrow\beta+\delta$ ；若残差下降则减小 $\mu$ ，否则增大 $\mu$ 重试。
5. 收敛后，各 $A_k$ 即为分解后各谱线的净强度。

**铁矿示例**：把 259–261 nm 窗口里 Fe II 259.94、Fe II 260.71、Si II 259.5 等重叠线用一个"3 个 Voigt \+ 1 阶背景"模型做 L-M 拟合，得到 Fe II 259.94 的纯峰面积，作为定量变量，比直接取峰高（受重叠抬高）准确得多。

#### 7. 数据压缩用的小波变换（WT for data compression）

**原理**：LIBS 一条谱上万点，多变元建模时矩阵巨大。小波把能量**集中**到少数大系数（能量紧支性），因此**只保留幅值最大的 $K$ 个系数**（或保留到某层近似系数），即可用极少参数近似重构原谱，实现降维/压缩，且保留峰形信息（优于简单 binning 或等间隔抽点）。

**实现步骤**：

1. 对训练集每条谱做 DWT。
2. 选择压缩策略：\(a\) 保留前 $K$ 个最大绝对值系数；或 \(b\) 只保留 cA\_L 加少数层 cD；或 \(c\) 用 PCA 在小波系数上再压。
3. 以压缩后的系数向量代替原谱，作为后续 PLS/SVM/ANN 的输入。
4. 必要时 IDWT 回看重构误差。

**铁矿示例**：把 12000 点谱压成 200 个最大小波系数，重构误差 <1%，但 PLS-DA 建模矩阵缩小 60 倍，在嵌入式/在线分选设备（如矿石传送带上的 LIBS 分选机）上显著提速。

---

### 二、定性分析 / 模式识别（Qualitative analysis, pattern recognition）

目标：根据光谱"指纹"判断矿石**属于哪一类**（矿种识别、产地判别、品位分级）。分有监督与无监督。

#### （A）有监督模式识别（Supervised pattern recognition）

需要已知类别标签的训练集。

##### 8. 偏最小二乘判别分析 PLS-DA（Partial Least Squares Discriminant Analysis）

**原理**：把类别标签 $Y$ 编码为**哑变量矩阵**（如 5 类→5 列 0/1 指示变量），对其做 PLS 回归：在 $X$ （光谱）和 $Y$ （哑变量）之间找潜变量（LV），使二者协方差最大。预测时得到每类的"得分"，取最大者或设阈值（如 0.5）判定类别。本质是"用回归做分类"，能处理高维共线光谱。

**实现步骤**：

1. 构造 $Y$ 哑变量矩阵（每行样品，每类一列，属于该类记 1）。
2. 用 NIPALS 算法提取潜变量 $t=Xw$ ，使 $\text{cov}(t,u)$ 最大， $u$ 为 $Y$ 的对应分量。
3. 交叉验证（如留一/分块）选最优 LV 数。
4. 预测 $\hat{Y}=XB$ ，按行取 argmax 或阈值判类。
5. 用 VIP（变量重要性）选出判别贡献大的波长（即判别性谱线）。

**铁矿示例**：把 5 类矿（磁/赤/褐/菱/脉石）做 PLS-DA，VIP 高的波长落在 Fe 氧化态敏感线、Ca（菱铁矿伴生 Ca？实际菱铁矿 FeCO₃ 常伴 Ca/Mg）、以及 OH/H 线（褐铁矿含结晶水，H、O 线强）上，模型据此区分褐铁矿（含水特征）与赤铁矿。

##### 9. SIMCA（Soft Independent Modeling of Class Analogy，软独立类类比）

**原理**：对**每一类单独**做 PCA，建立该类的"主成分子空间模型"，定义类内残差与得分距离的接受域（如 95% 置信椭圆）。新样品分别投影到每个类模型，计算到该类的**正交距离（残差，Q/OD）**和**得分距离（SD/Hotelling T²）**，落在接受域内即判属该类。"软"指一个样品可同时属于多类或不属于任何类（开放类建模），适合"鉴别真伪/是否属于某矿种"。

**实现步骤**：

1. 对每类训练样本做 PCA，保留 $A_c$ 个主成分（交叉验证定）。
2. 计算该类残差方差 $s_0^2$ 与得分临界值。
3. 新样本 $x$ ：投影得得分与残差，算 OD 与 SD。
4. 若 OD、SD 均小于该类临界值→接受；可同时被多类接受或全拒绝。

**铁矿示例**：建立"高品位磁铁矿"类模型后，对来料做 SIMCA：落在类内→合格精矿；OD 超标（出现模型没见过的 Si/Al 强线）→判为掺了脉石的异常样，触发拒收。SIMCA 的"开放类"特性正适合这种"只认合格品、其余皆异常"的质检场景。

##### 10. 最小二乘支持向量机 LSSVM（Least Squares SVM）

**原理**：标准 SVM 把分类写成**凸二次规划 \+ 不等式约束**（ hinge 损失 \+ 稀疏解）。LSSVM 把不等式约束改为**等式约束**、把 hinge 损失改为**平方误差损失**，于是 KKT 条件退化为一个**线性方程组**，求解更快、实现更简单，代价是解不再稀疏（所有训练点都是支持向量）。分类时仍用核函数（RBF/线性）把光谱映到高维，找最优超平面；多类用"一对多/一对一"或编码。

**实现步骤**：

1. 标签取 $\pm1$ （二分类）或编码（多类）。
2. 选核函数 $K$ （LIBS 常用 RBF： $K(x_i,x_j)=\exp(-\|x_i-x_j\|^2/2\sigma^2)$ ）。
3. 解线性系统 $\begin{bmatrix}0 & \mathbf{1}^T\\ \mathbf{1} & \Omega+\gamma^{-1}I\end{bmatrix}\begin{bmatrix}b\\ \alpha\end{bmatrix}=\begin{bmatrix}0\\ y\end{bmatrix}$ ， $\Omega_{ij}=y_i y_j K(x_i,x_j)$ 。
4. 调参 $(\gamma,\sigma)$ （网格搜索\+交叉验证）。
5. 决策 $f(x)=\sum_i \alpha_i y_i K(x_i,x)+b$ ，符号定类。

**铁矿示例**：用 RBF-LSSVM 对"赤铁矿 vs 磁铁矿"二分类，因二者 Fe 线相近、差异细微（氧化态/伴生元素），RBF 核的非线性边界能比线性 LDA 分得更干净；LSSVM 训练只解一次线性方程，适合在线快速建模。

##### 11. 分类与回归树 CART（Classification and Regression Tree）

**原理**：递归地用**单个波长（或波长强度比/比值特征）的阈值**把样本二分，选择使**不纯度下降最大**（基尼指数 Gini 或熵信息增益）的分裂点，生成二叉树；叶节点给出类别（多数表决）。可解释性极强——每个分裂节点就是一个"谱线强度判据"。

**实现步骤**：

1. 对每个候选波长 $j$ 和阈值 $t$ ，计算分裂后两子节点的加权 Gini。
2. 选 Gini 下降最大的 $(j,t)$ 分裂。
3. 递归，直到叶节点纯或样本数低于阈值，或达到深度限制。
4. 剪枝（代价复杂度剪枝）防过拟合。
5. 新样本沿树走到叶，输出类别。

**铁矿示例**：CART 第一刀可能落在"Fe I 382.04 / Si I 288.16 比值 \> τ₁"（铁硅比，区分矿石与脉石），第二刀落在"H I 656.3 强度 \> τ₂"（区分含水的褐铁矿）。最终得到一棵可读的"矿种判别决策树"，便于现场工程师理解和审计。

##### 12. 独立成分分析 ICA（Independent Component Analysis）

**原理**：与 PCA 找"不相关"方向不同，ICA 找**统计独立**的非高斯成分，假设观测光谱是若干**独立源信号**（如各纯元素/矿物端元的发射轮廓）的线性混合：$X=AS$，求分离矩阵 $W$ 使 $S=WX$ 各分量尽可能独立（最大化非高斯性，如负熵/峰度，典型算法 FastICA）。在监督框架下，可把提取的独立成分作为特征再分类，或用已知端元做约束 ICA。

**实现步骤**：
1. 中心化、白化 $X$（PCA 预白化）。
2. FastICA：迭代 $w\leftarrow E\{x\,g(w^Tx)\}-E\{g'(w^Tx)\}w$，再正交化，$g$ 取 $\tanh$ 或 $g(u)=u^3$。
3. 提取 $k$ 个独立成分 $S$。
4. 以 $S$ 为特征接分类器，或检查成分谱是否对应某元素端元。

**铁矿示例**：把混合矿谱分解为"铁端元、硅端元、钙端元、背景端元"等独立成分，每个成分的"权重"作为特征喂给分类器；因为 ICA 分离出的成分比 PCA 主成分更接近物理端元，对"混矿比例不同导致的类别差异"更敏感。

##### 13. 判别因子分析 DFA（Discriminant Factor Analysis）

**原理**：DFA 是**因子分析 + 判别**的结合：先假设变量由少数公共因子+特异因子生成，提取能**最大化类间差异**的判别因子（在因子模型框架下做判别），降维后在因子空间分类。可视为带因子模型约束的判别分析，对噪声/共线有一定稳健性。

**实现步骤**：
1. 估计因子模型 $X=\Lambda F+\varepsilon$。
2. 在因子空间构造类间/类内散度，求判别因子方向。
3. 投影样本到判别因子，按距离/贝叶斯规则判类。

**铁矿示例**：当 LIBS 谱受基体效应导致大量波长高度共线时，DFA 先用因子模型"去冗余"，再在低维判别因子上区分矿种，比直接 LDA 更稳。

##### 14. 线性判别分析 LDA（Linear Discriminant Analysis）

**原理**：Fisher 准则——找投影方向 $w$ 使**类间散度 $S_B$ 与类内散度 $S_W$ 之比**最大：$J(w)=\frac{w^TS_Bw}{w^TS_Ww}$，解为广义特征问题 $S_Bw=\lambda S_Ww$，最多得 $C-1$ 个判别方向。在所得子空间用最近类中心或贝叶斯（假设各类高斯同协方差）判类。LDA 同时是降维与分类器。

**实现步骤**：
1. 计算各类均值 $\mu_c$、总均值 $\mu$，类内散度 $S_W=\sum_c\sum_{x\in c}(x-\mu_c)(x-\mu_c)^T$，类间 $S_B=\sum_c n_c(\mu_c-\mu)(\mu_c-\mu)^T$。
2. 解 $S_W^{-1}S_B$ 的特征向量，取前 $C-1$ 个。
3. 投影训练/测试样本。
4. 在判别空间按马氏距离或线性边界判类。
5. 高维时 $S_W$ 奇异，需先 PCA 降维（PCA+LDA，即 Fisherfaces 思路）或正则化 LDA。

**铁矿示例**：5 类矿最多 4 个判别方向，把 12000 维谱压到 4 维散点图，肉眼可见磁铁矿与赤铁矿团簇分开；但因 LDA 是线性边界，对"褐铁矿与含水赤铁矿"这种非线性交叠可能分不好，此时换 SVM/RF。

##### 15. 支持向量机 SVM（Support Vector Machines）

**原理**：在核诱导的高维特征空间找**最大间隔超平面**，最小化 $\frac{1}{2}\|w\|^2+C\sum\xi_i$，约束 $y_i(w^T\phi(x_i)+b)\ge1-\xi_i$。解是**稀疏**的（仅支持向量决定边界），对高维小样本表现优异，泛化理论扎实。多类用 OVO/OVR。

**实现步骤**：
1. 选核（RBF 常用）与参数 $C,\gamma$。
2. 解对偶 QP，得 $\alpha_i$，支持向量即 $\alpha_i>0$ 者。
3. 决策 $f(x)=\sum_{i\in SV}\alpha_i y_i K(x_i,x)+b$。
4. 网格搜索+交叉验证调参；多类组合投票。

**铁矿示例**：样本量不大（每类几十发）而维数极高，正是 SVM 的强项；用 RBF-SVM 对 5 类矿分类，准确率常高于 LDA。可结合波长选择（如递归特征消除 RFE）剔除无关波长，进一步抗基体干扰。

##### 16. 人工神经网络 ANN（Artificial Neural Networks）

**原理**：多层感知机（MLP）等通过**非线性激活**的层叠神经元拟合 $X\to Y$ 的复杂映射，反向传播（BP）最小化损失。能逼近任意非线性，适合 LIBS 这种基体效应强、类别边界弯曲的问题；但需较多数据、易过拟合、可解释性差。

**实现步骤**：
1. 设计结构（输入=波长或压缩特征，隐层若干，输出=各类概率 softmax 或哑变量）。
2. 初始化权重，前向传播算输出与损失（交叉熵）。
3. 反向传播求梯度，用 SGD/Adam 更新权重；加 dropout/正则防过拟合。
4. 验证集早停选模型；输出层 argmax 得类别。

**铁矿示例**：用 MLP（输入为经小波压缩的 200 维特征，2 个隐层）对矿种+品位等级联合分类；当类别间因基体效应呈强非线性时，ANN 准确率优于线性方法，但需用大量打谱数据训练。

##### 17. K-近邻 KNN（K-Nearest Neighbor）

**原理**：**无训练过程**的"懒惰学习"——对新样本，在训练集中按距离（欧氏/马氏/余弦）找最近的 $K$ 个邻居，**多数表决**定类。简单直观，但预测慢、对维数灾难和尺度敏感，需先标准化/降维。

**实现步骤**：
1. 训练集标准化（或 PCA 降维）。
2. 选 $K$ 与距离度量。
3. 新样本计算到所有训练样本距离，取最近 $K$ 个。
4. 多数表决（可距离加权）输出类别。

**铁矿示例**：先用 PCA 把谱降到 20 维并标准化，再用 $K=5$ 加权 KNN 判矿种；优点是无需假设分布，缺点是 12000 维直接算距离会被噪声波长主导，故**必须先降维/选波长**。

##### 18. 随机森林 RF（Random Forest）

**原理**：集成学习——构建大量 CART，每棵树用**Bootstrap 抽样**的样本 + **随机选取的特征子集**做分裂，最终**投票**（分类）或平均（回归）。随机性降低方差、抗过拟合，且天然给出**特征重要性**（基于不纯度下降或置换重要性），对噪声和缺失稳健，几乎"开箱即用"。

**实现步骤**：
1. 设树数 $B$、每节点候选特征数 $m$（常 $\sqrt{p}$）。
2. 对 $b=1..B$：Bootstrap 抽样→建 CART（每节点从随机 $m$ 个波长中选最优分裂）→不剪枝。
3. 预测时 $B$ 棵树投票。
4. 用 OOB（袋外）误差估泛化；输出特征重要性。

**铁矿示例**：RF 对 5 类矿分类通常名列前茅，且其重要性图直接标出"判别矿种最关键的若干条谱线"（如 Fe 氧化态线、H 线、Ca 线），兼具高精度与可解释性，是 LIBS 矿种识别的常用首选。

##### 19. 自适应局部超平面（Adaptive Local Hyperplane, ALH）

**原理**：介于 KNN 与线性判别之间的**局部方法**——对新样本，先找其 $K$ 个近邻，在这 $K$ 个近邻张成的**局部线性流形**上，构造一个**局部超平面**（用近邻的仿射组合表示查询点），按查询点到**各类局部超平面的距离**判类。比 KNN 的"点表决"更平滑，比全局 LDA 更适应非线性流形。

**实现步骤**：
1. 选 $K$，对查询点 $x$ 找 $K$ 近邻。
2. 对每一类，用该类近邻构造局部超平面，求 $x$ 到该超平面的投影/距离（解带正则的局部坐标）。
3. 距离最小的类即为预测类。

**铁矿示例**：当矿种在光谱空间呈弯曲流形（如品位连续变化导致的渐变谱）时，ALH 用局部线性近似比全局线性 LDA 更准，又比纯 KNN 稳定。

##### 20. N 近邻 N3（N nearest neighbors, N3）

**原理**：KNN 的变体/推广，"N3"通常指**带邻域结构或加权/嵌套的近邻规则**（如考虑近邻的邻域一致性、或用 N 个近邻构造局部统计量再判类，缓解 KNN 在边界处的不稳定）。其思想仍是局部相似性，但通过"近邻的近邻"或邻域投票来**平滑决策边界、抑制噪声标签**。

**实现步骤**：
1. 找查询点的 $N$ 近邻。
2. 对每个近邻再考察其邻域构成（二阶邻域信息），形成加权/置信度。
3. 综合一阶+二阶邻域信息表决判类。

**铁矿示例**：LIBS 单发谱标签可能因打点落在矿物颗粒边界而"脏"，N3 利用邻域一致性可削弱个别错标样本的影响，使矿种判别对噪声标签更鲁棒。

#### （B）无监督模式识别（Unsupervised pattern recognition）

不需要标签，用于**探索性分析/聚类/可视化**，如未知来料的"自然分组"。

##### 21. K-均值聚类（K-means）

**原理**：把样本划入 $K$ 个簇，使**簇内平方误差和**最小：$\min \sum_{k}\sum_{x\in C_k}\|x-\mu_k\|^2$。迭代"分配—更新"。简单高效，但需预设 $K$、对初值敏感、假设球形簇。

**实现步骤**：
1. 选 $K$（肘部法/轮廓系数），随机初始化 $K$ 个中心。
2. 每样本归入最近中心。
3. 重算各簇中心。
4. 重复 2–3 至收敛；可多次随机重启取最优。

**铁矿示例**：对**无标签**的一批来料谱做 K-means（先 PCA 降维），自动聚成几堆，再人工核对每堆的矿种——用于"我不知道这批料有几种矿"的探索，或发现混料中的异常亚群。

##### 22. 主成分分析 PCA（Principal Components Analysis）

**原理**：找数据**方差最大**的正交方向（主成分），即对协方差矩阵 $X^TX$ 做特征分解（或对 $X$ 做 SVD），前几个 PC 捕获主要变异，用于**降维与可视化**。无监督，不保证类可分，但常能把矿种在 PC1–PC2 平面上大致分开（因为不同矿的元素组成差异是谱的主要变异来源）。

**实现步骤**：
1. 中心化（常+标准化）$X$。
2. SVD：$X=U\Sigma V^T$，$V$ 的列即主成分载荷，$U\Sigma$ 为得分。
3. 选前 $k$ 个 PC（累计方差贡献率，如 >90%）。
4. 画得分散点图、载荷图（载荷峰=贡献大的波长）。

**铁矿示例**：PC1 载荷上 Fe 线权重高（反映铁含量/基体），PC2 上 Ca、Si、H 线权重高（反映伴生/含水差异）；得分图上磁铁矿、赤铁矿、褐铁矿自然成团，无需标签即可"看见"矿种结构，并据载荷定位判别谱线。

##### 23. 线性判别分析 LDA（在无监督栏中的说明）

**原理/说明**：表格在"无监督"行也列了 LDA。严格说 LDA 需要类别标签（是有监督的）。它出现在此处，通常有两种实际用法：(i) **PCA+LDA 流水线**中，先用无监督 PCA 探索/降维，再用 LDA 做判别可视化，整条流程常被归入"模式识别探索"环节；(ii) 把**K-means 聚出的伪标签**当作类别，再做 LDA 以**放大簇间差异、可视化聚类结果**（即"聚类引导的判别投影"）。其数学原理同第 14 条。

**实现步骤（聚类引导版）**：
1. 先 K-means 得伪类标签。
2. 以伪标签做 LDA，求判别方向。
3. 投影可视化，检验簇是否线性可分，并读取判别波长。

**铁矿示例**：先 K-means 把未知来料聚成 4 堆，再用 LDA 把这 4 堆投影到 3 维判别空间，清晰展示"哪两堆最易混"（如褐铁矿堆与含水赤铁矿堆重叠），指导后续补做有监督模型或加测含水指标。

---

### 三、定量分析（Quantitative analysis）

目标：从光谱**预测元素/氧化物含量**（TFe、SiO₂、CaO、P、S…）。分**校准曲线法**（单变量/多变量）与**无校准法（CF-LIBS）**。

#### （A）校准曲线法（Calibration curve）

##### 单变量校准（Univariate calibration）

###### 24. 单变量校准曲线（强度–含量线性/非线性拟合）

**原理**：LIBS 谱线强度 $I$ 与元素浓度 $c$ 在一定范围近似满足**罗马金-赛伯公式（Lomakin-Scheibe）** $I=a\,c^b$（取对数即线性 $\log I=\log a+b\log c$），或低浓度下线性 $I=kc+I_0$。选**一条分析线**（必要时用内标线比值 $I_{分析}/I_{内标}$ 抵消脉冲能量/基体波动），对标准样做拟合得校准曲线，再反推未知样含量。

**实现步骤**：
1. 选分析线（强、无重叠、无自吸收，如 Fe I 404.58 或经 L-M 分解后的净峰）与内标线（基体线或加入的内标元素线）。
2. 对每个标准样，取（内标归一化的）强度与参考含量。
3. 拟合 $I$–$c$（线性/对数线性/二次），得校准函数。
4. 未知样测强度，代入反算含量；用留一/独立验证集评估 RMSEP、$R^2$。

**铁矿示例**：以 Si I 288.16 nm / Fe I 404.58 nm 强度比对 SiO₂ 参考值做线性校准，预测铁矿中 SiO₂。问题：铁矿基体变化大（磁/赤/褐矿的等离子体温度、电子密度不同），单变量曲线**基体效应严重**，不同矿种需分别建线或用内标/标准加入补偿，精度有限——这正是引入多变量的动机。

##### 多变量校准（Multivariate calibration）

###### 25. 偏最小二乘 PLS（Partial Least Squares，含与内标联用）

**原理**：对 $X$（全谱或选波段）和 $y$（含量）同时分解为潜变量，使 $X$ 与 $y$ 协方差最大，用少数 LV 回归，天然抗共线、抗噪声、能利用全谱信息补偿基体效应。表中特别提到**与内标标准化（internal standardization, ECIS 等）联用**：先把每条谱除以内标线（或内标归一化），再喂给 PLS，进一步抑制脉冲间波动。

**实现步骤**：
1. 预处理（基线/去噪/内标归一化）。
2. 选 $X$（全谱或 CWT/VIP 选出的波段）。
3. NIPALS 提取 LV，交叉验证选 LV 数（防过拟合）。
4. 得回归系数 $B$，预测 $\hat{y}=XB$。
5. 评估 RMSEC/RMSECV/RMSEP、$R^2$、RPD；用 VIP/回归系数图看贡献波长。

**铁矿示例**：用全谱 PLS 预测 TFe，模型会自动给 Fe 多条线正权重、给受基体影响的连续背景负权重（隐式基体校正），精度远优于单变量；再叠加"Fe II/Fe I 内标归一化"补偿等离子体温度漂移，使不同矿种的 TFe 模型统一。

###### 26. 偏最小二乘结合内标标准化（PLS + internal standardization / ECIS）

**原理**：ECIS（如"能量/内标校正"类方法）在 PLS 之前，用**内标线或等离子体参数**对谱做标准化，使输入 $X$ 已部分消除脉冲能量、烧蚀量、温度的波动，PLS 只需学残余的化学–光谱关系，模型更稳、跨矿种迁移性更好。

**实现步骤**：
1. 选内标（基体主量线，如 Fe 线用于铁矿，或外加内标）。
2. 逐脉冲/逐谱做强度比或能量归一化。
3. 标准化后的 $X$ 做 PLS（同 25）。

**铁矿示例**：铁矿以 Fe 为基体主量，用一条稳定 Fe 线作内标，对每发谱归一化后再 PLS 测 SiO₂/Al₂O₃，可显著降低因激光能量抖动带来的预测方差。

###### 27. 最小二乘支持向量机 LSSVM（定量版）

**原理**：同第 10 条，但输出为**连续含量**，损失为平方误差，解线性方程组，用 RBF 核拟合 $X\to y$ 的非线性校准曲面，适合基体效应导致的非线性响应。

**实现步骤**：
1. 预处理+（可选）降维。
2. 选 RBF 核，调 $(\gamma,\sigma)$（网格+交叉验证）。
3. 解 LSSVM 线性系统得 $\alpha,b$。
4. 预测 $\hat{y}=\sum_i\alpha_i K(x_i,x)+b$。

**铁矿示例**：TFe 在高品位区因**自吸收**使强度–含量呈弯曲（饱和），线性 PLS 拟合偏差大；RBF-LSSVM 能拟合这条饱和曲线，在高 Fe 区更准。

###### 28. 多元线性回归 MLR（Multiple Linear Regression）

**原理**：$\hat{y}=X\beta+\varepsilon$，普通最小二乘 $\beta=(X^TX)^{-1}X^Ty$。要求**变量数 < 样本数且无严重共线**，否则 $X^TX$ 病态。因此 MLR 必须配合**波长选择**（只选少数互不共线的特征波长）使用，模型可解释（每个波长一个系数）。

**实现步骤**：
1. 用 VIP/遗传算法/相关性选出少量（如 5–10 条）波长。
2. OLS 拟合 $\beta$。
3. 诊断多重共线性（VIF）、残差；必要时岭回归正则。
4. 预测与评估。

**铁矿示例**：选出 Fe I 382.04、Fe II 259.94、Fe I 438.36 等 5 条互不重叠线做 MLR 测 TFe，系数物理意义清楚；但若误选了共线波长，VIF 飙升、系数不稳，需剔除。

###### 29. 支持向量回归 SVR / SVM（回归版）

**原理**：SVR 在 $\varepsilon$-不敏感带内不计误差，最小化 $\frac{1}{2}\|w\|^2+C\sum(\xi+\xi^*)$，用核拟合非线性校准函数，解稀疏。对异常值比 LSSVM 稳健（因 $\varepsilon$ 带与 hinge 型损失）。

**实现步骤**：
1. 选核与参数 $C,\varepsilon,\gamma$。
2. 解 QP 得支持向量与 $\alpha,\alpha^*$。
3. $\hat{y}=\sum(\alpha_i-\alpha_i^*)K(x_i,x)+b$。
4. 调参+交叉验证。

**铁矿示例**：铁矿样中偶有"打点落在裂隙/杂质"的离群谱，SVR 的 $\varepsilon$ 带使其对这类离群点不敏感，TFe 回归比 LSSVM 更稳健。

###### 30. 支持向量机 SVM（用于回归/或分类辅助定量，如品位分级）

**原理**：同 15/29，SVM 框架既可分类也可回归；在定量栏中，SVM 常指**用 SVM 做品位等级回归或先分类后分模型定量**（如先 SVM 判矿种，再对每矿种用专属回归，规避跨矿种基体差异）。

**实现步骤**：先 SVM 分类→分组建回归模型→预测。

**铁矿示例**：先 SVM 把样分为磁/赤/褐三组，再各组内建 PLS 测 TFe，避免一个全局模型被矿种基体差异拖累。

###### 31. 人工神经网络 ANN（定量版）

**原理**：MLP 拟合 $X\to y$ 非线性映射，能刻画自吸收、基体效应等复杂非线性，但需大数据与正则。

**实现步骤**：同 16，输出层改为线性单/多输出，损失用 MSE。

**铁矿示例**：用 ANN 同时输出 TFe、SiO₂、CaO、Al₂O₃、P、S 多组分（多输出网络），一次打谱给出全分析；非线性能力强，但需数百标样训练并严防过拟合。

###### 32. 相关性向量机 RVM（Relevance Vector Machine）

**原理**：SVM 的**贝叶斯稀疏**对应物——对权重施加**自动相关性确定（ARD）先验**，贝叶斯推断后绝大多数权重后验趋于 0，留下极少数"相关性向量"，解**比 SVM 更稀疏**，且**直接给出预测的概率分布/置信区间**（无需交叉验证调 $C$）。核函数同 SVM。

**实现步骤**：
1. 选核，构造设计矩阵 $\Phi$。
2. 设 ARD 先验 $p(w|\alpha)=\prod N(0,\alpha_i^{-1})$，用 Type-II 最大似然（证据近似）迭代更新 $\alpha$ 与超参。
3. 后验均值给出预测，后验方差给出不确定度。

**铁矿示例**：RVM 用极少相关性向量（几十而非几百）即可拟合 TFe 校准，模型轻量、适合嵌入式；且对每发预测给出**置信区间**，在线分选时可"低置信度则复测"，提升可靠性。

###### 33. 人工神经网络 ANN（表中重复列出，强调不同结构/用途）

**说明**：表格在定量多变量栏两次出现 ANN，意在涵盖**不同网络结构**用于定量，如 MLP、RBF 网络、以及后文的 ELM 等广义神经网络家族。原理同 16/31。

###### 34. 极限学习机 ELM（Extreme Learning Machine）

**原理**：单隐层前馈网络的"快训"变体——**隐层权重与偏置随机生成且固定**，只需求输出层权重，归结为**最小二乘/伪逆** $\beta=H^\dagger T$（$H$ 为隐层输出矩阵，$T$ 为目标）。训练极快、无需迭代调隐层，泛化常优于 BP-ANN，且避免局部极小。

**实现步骤**：
1. 随机生成隐层权重 $W$、偏置 $b$（固定）。
2. 计算隐层输出矩阵 $H=g(XW+b)$。
3. 求输出权重 $\beta=H^\dagger y$（Moore-Penrose 伪逆，或正则化 $(H^TH+\lambda I)^{-1}H^Ty$ 防过拟合）。
4. 预测 $\hat{y}=g(xW+b)\beta$。

**铁矿示例**：在线 LIBS 需"秒级建模/更新"，ELM 训练比 BP-ANN 快几个数量级，适合传送带上随来料分布漂移而**快速重训** TFe 模型。

###### 35. 随机森林 RF（回归版）

**原理**：同 18，叶节点取**均值**做回归，集成降方差、抗过拟合、给特征重要性，对非线性与离群稳健，几乎免调参。

**实现步骤**：建 $B$ 棵回归树（Bootstrap+随机特征），预测取平均；OOB 估误差；输出波长重要性。

**铁矿示例**：RF 回归测 TFe/SiO₂ 常与 PLS 媲美且更抗离群打点；其重要性图直接告诉工艺人员"哪几条线最该盯紧"，便于做硬件上的波长监控。

#### （B）无校准法（Calibration-free）

无需标准样，靠**等离子体物理模型**从谱线绝对/相对强度反推元素浓度，适合"无标样/标样难制备"的场景。

##### 36. 无校准 LIBS（CF-LIBS, Calibration-Free LIBS）

**原理**：假设等离子体满足 (i) **局部热平衡（LTE）**、(ii) **光学薄**、(iii) 化学计量烧蚀。则谱线积分强度
$$I_{ki}=F\,c_s\,A_{ki}\,\frac{g_k}{U_s(T)}\,\exp\!\left(-\frac{E_k}{k_BT}\right)$$
其中 $c_s$ 为元素 $s$ 浓度，$A_{ki}$ 跃迁概率，$g_k$ 上能级简并，$E_k$ 上能级能量，$U_s(T)$ 配分函数，$T$ 等离子体温度，$F$ 与仪器/数密度有关的常数。对某元素取对数得 **Boltzmann 图**：$\ln(I_{ki}\lambda_{ki}/(g_kA_{ki}))=-E_k/(k_BT)+\ln(c_sF/U_s)$，**斜率**给 $-1/(k_BT)$、**截距**含 $c_s$。用多元素 Boltzmann 图联合求 $T$ 与各 $c_s$，再归一化 $\sum c_s=1$ 得各元素含量。电子密度 $n_e$ 由 **Stark 加宽**（如 Hα 或某离子线宽）独立测得，用于 Saha-Boltzmann 统一中性/离子线。

**实现步骤**：
1. 预处理：扣基线、去噪、**用 L-M/CWT 精确求各线积分强度与线宽**（CF 对强度与线宽精度极敏感）。
2. 选多条**无自吸收、参数可靠**的 Fe I/Fe II（及 Ca、Si、Al、Mg 等）线，查 $A_{ki},g_k,E_k$。
3. 由 Stark 加宽求 $n_e$；由 Saha 方程+多元素 Boltzmann 图迭代求 $T$（使各元素 Boltzmann 图斜率一致）。
4. 自吸收校正（如用曲线生长法/内参考/双线法估计光学厚度并修正 $I$）。
5. 由各线截距求相对 $c_sF/U_s$，结合 $U_s(T)$ 得相对浓度，归一化为质量/原子分数。

**铁矿示例**：来料矿种未知、无对应标样时，用 CF-LIBS 直接由 Fe/Ca/Si/Al/Mg 的多条线 Boltzmann 图给出 TFe 与脉石氧化物的**半定量–定量**组成，无需建校准曲线；难点是铁矿 Fe 线**自吸收强**，必须做自吸收校正（否则 Fe 被低估、脉石被高估），且 LTE 需通过 McWhirter 判据与时间门控验证。

###### 37. 遗传算法 GA（Genetic Algorithm，用于 CF/建模中的优化）

**原理**：模拟自然选择的全局优化：把待优化参数（如 CF-LIBS 中的 $T,n_e$、自吸收系数，或波长子集、模型超参）编码为**染色体**，通过**选择、交叉、变异**迭代进化，适应度函数为待最小化的目标（如 Boltzmann 图各元素斜率不一致度、或预测残差）。擅长**非凸、多峰、组合**优化，避免陷入局部极小。

**实现步骤**：
1. 编码参数为个体，随机初始化种群。
2. 评估适应度（如 CF 中：给定 $T,n_e$ 时各元素 Boltzmann 线性度/残差）。
3. 选择（轮盘/锦标赛）→交叉→变异→形成新种群。
4. 迭代至收敛，输出最优参数。

**铁矿示例**：CF-LIBS 中 $T$ 与自吸收参数耦合、目标非凸，用 GA 全局搜索最优 $(T,n_e,\text{自吸收修正})$，比手工/梯度法更稳；也可用 GA 为 PLS/MLR **选波长**（染色体=波长 0/1 掩码，适应度=验证 RMSEP），自动剔共线/无信息波长。

###### 38. 二元搜索算法（Binary Search Algorithm，用于参数/阈值优化）

**原理**：在**单调/有序**搜索空间上，反复取中点、据判别缩半区间，$O(\log n)$ 收敛。在 LIBS 中用于**单参数单调目标**的快速定位，如：CF-LIBS 中在已知区间内二分搜索使某判据（如中性/离子线 Saha 一致性、或自吸收校正后双线强度比=理论值）成立的 $T$ 或光学厚度；或分类阈值/自吸收修正因子的快速求解。

**实现步骤**：
1. 设参数区间 $[lo,hi]$ 与目标单调性。
2. 取中点 $mid$，计算判据 $f(mid)$。
3. 据 $f(mid)$ 符号/方向，将区间缩为 $[lo,mid]$ 或 $[mid,hi]$。
4. 重复至区间宽度 < 容差。

**铁矿示例**：用"自吸收校正后，同一上能级两条 Fe I 线的强度比应等于理论 $gA$ 比"这一单调判据，二分搜索光学厚度 $\tau$，快速完成 CF-LIBS 的自吸收校正，比 GA 更省算力（当问题确为单参数单调时）。

###### 39. 混合无校准/ANN（Hybrid calibration-free / ANN）

**原理**：把 **CF-LIBS 的物理量**（如 Boltzmann 图斜率/截距、$T,n_e$、自吸收校正后的相对浓度、Saha 比等）作为**特征**，喂给 **ANN** 学习"CF 物理特征→真实含量"的**残余非线性映射**，用少量标样修正 CF 的系统偏差（如 LTE 偏离、光学薄假设失效、参数误差）。兼具"无需大量标样"与"数据驱动纠偏"的优点。

**实现步骤**：
1. 对每个样做 CF-LIBS，提取物理特征向量 $z$（$T,n_e$, 各元素 Boltzmann 截距/相对浓度, 自吸收指标等）。
2. 以 $z$ 为输入、化学法含量为目标，训练 ANN（或 RVM/ELM）。
3. 新样：先 CF 提 $z$，再 ANN 输出校正后含量。

**铁矿示例**：纯 CF-LIBS 测铁矿 TFe 因自吸收/LTE 偏离有 ~5–10% 系统偏差；用 20–30 个标样训练"CF 特征→TFe"的 ANN 残差模型，可把偏差压到 ~1–2%，而无需为每种矿建完整校准曲线——是"少标样+物理可解释"的折中方案。

###### 40. 蒙特卡洛 MC（Monte Carlo，用于不确定度/CF 稳健性）

**原理**：通过**随机抽样传播误差**：对输入量（谱线强度、$A_{ki}$、$E_k$、$T,n_e$、自吸收系数等）按其不确定度分布**重复抽样**，每次跑一遍 CF-LIBS（或任一模型），得到输出的**分布**，从而给出含量估计的**置信区间/不确定度**，并能做**敏感性分析**（哪个输入误差对结果影响最大）。也用于 CF 中难以解析求解的积分/迭代问题的随机逼近。

**实现步骤**：
1. 为各输入量设定分布（如强度~$N(I,\sigma_I)$，$A_{ki}$~按文献不确定度）。
2. 抽 $N$ 组样本（$N$ 常 1e4–1e6）。
3. 每组跑 CF/模型，得 $N$ 个含量值。
4. 统计均值、标准差、分位数→报告 $c\pm U$；做 Sobol/相关敏感性排序。

**铁矿示例**：CF-LIBS 报 TFe=62.3% 时，用 MC 传播"强度±3%、$A_{ki}$±5%、$T$±500 K"的不确定度，得 TFe=62.3±1.8%（95%），并发现**自吸收系数的不确定度贡献最大**，从而指导后续重点改进自吸收校正——使无校准结果"带误差棒"，满足冶金计量要求。

---

### 四、把全表串成一条"铁矿 LIBS 分析流水线"（综合示例）

为让你看清各算法如何协作，给出一个端到端流程：

1. **采集**：每样 50 发，200–900 nm，12000 维。
2. **预处理**：airPLS（**model-free**）扣基线 → **SWT+WTD**（BayesShrink 软阈值）去噪 → **CWT**（Ricker）检测/分辨 Fe-Cr、Fe-Si 重叠峰 → 对关键重叠窗用 **L-M** 拟合分解得净峰面积 → **WT 压缩**到 200 系数（供在线模型）。
3. **定性（矿种识别）**：探索阶段用 **PCA** 看自然分团、**K-means** 找未知亚群、必要时 **K-means+LDA** 放大簇差；建模阶段用 **RF / SVM / PLS-DA** 做 5 类矿判别，辅以 **SIMCA** 做"合格精矿"开放类质检；非线性交叠用 **LSSVM/ANN/ALH**，标签噪声用 **N3**，需可解释规则用 **CART**，需端元物理特征用 **ICA/DFA**。
4. **定量（含量）**：低基体变化组分（如脉石 SiO₂）可用**单变量+内标**；主量 TFe 用 **PLS（+内标 ECIS）** 或 **RF/SVR**；高 Fe 自吸收饱和区用 **LSSVM/ANN/ELM** 拟合非线性；需轻量+置信区间用 **RVM**；需快速重训用 **ELM**；变量选择用 **GA/MLR+VIF**。
5. **无标样场景**：上 **CF-LIBS**（Boltzmann+Saha+Stark），自吸收校正用**二元搜索**或 **GA** 优化，参数/不确定度用 **MC** 传播；若有少量标样，用 **混合 CF/ANN** 纠偏。
6. **报告**：给出矿种类别 + 各组分含量 + **MC 不确定度**，并对低置信样本（**RVM/SIMCA** 标记）触发复测。

---

#### 小结对照表（算法 → 一句话本质 → 铁矿关键作用）

| 算法 | 本质 | 铁矿关键作用 |
|---|---|---|
| Model-free (airPLS) | 不对称拟合扣基线 | 无干净背景窗也能扣连续背景 |
| WT / SWT | 多尺度局部分解 / 平移不变版 | 去噪、压缩、保弱 Fe 线 |
| WTD | 小波域阈值滤噪 | 提 P、S 弱线 |
| CWT | 连续尺度匹配滤波 | 分辨 Fe-Cr、Fe-Si 重叠峰 |
| L-M | 非线性最小二乘峰拟合 | 重叠峰数学分解取净面积 |
| PLS-DA | 哑变量 PLS 做分类 | 多类矿判别+VIP 选线 |
| SIMCA | 每类独立 PCA 接受域 | 合格精矿开放类质检 |
| LSSVM | 等式约束核方法 | 快训非线性分类/回归 |
| CART | 阈值二叉树 | 可读判别规则 |
| ICA | 独立源分离 | 提取元素端元特征 |
| DFA | 因子模型+判别 | 共线谱稳健判别 |
| LDA | 最大化类间/类内比 | 线性判别+降维可视化 |
| SVM | 最大间隔核分类 | 高维小样本矿种识别 |
| ANN | 多层非线性拟合 | 强非线性多组分联合建模 |
| KNN | 近邻多数表决 | 无分布假设分类（需降维） |
| RF | 随机树集成 | 高精度+特征重要性，常用首选 |
| ALH | 局部超平面 | 弯曲流形上的判别 |
| N3 | 邻域一致性近邻 | 抗噪声标签 |
| K-means | 簇内方差最小聚类 | 无标签探索/异常亚群 |
| PCA | 方差最大降维 | 探索性可视化+选线 |
| 单变量校准 | 罗马金-赛伯曲线 | 简单组分快速定量 |
| PLS / PLS+ECIS | 潜变量回归(+内标) | 全谱抗基体测 TFe |
| MLR | 选波长后 OLS | 可解释少变量定量 |
| SVR | ε 带核回归 | 抗离群非线性回归 |
| RVM | 贝叶斯稀疏核 | 轻量+置信区间 |
| ELM | 随机隐层+伪逆 | 秒级在线重训 |
| CF-LIBS | Boltzmann/Saha 物理反演 | 无标样半定量–定量 |
| GA | 进化全局优化 | CF 参数/波长选择 |
| 二元搜索 | 单调区间折半 | 自吸收/阈值快速定位 |
| Hybrid CF/ANN | 物理特征+ANN 纠偏 | 少标样修正 CF 系统偏差 |
| MC | 随机抽样传播误差 | 含量不确定度+敏感性 |

以上即表中**全部**算法的原理、实现步骤与铁矿 LIBS 分类/定量示例。实际选型时记住三条经验：**(1)** 铁矿谱"线多、重叠、自吸收、基体变"，故**预处理（CWT+L-M+WTD）与基体校正（内标/PLS/CF 自吸收修正）**是精度瓶颈；**(2)** 分类首选 **RF/SVM/PLS-DA**，需可解释用 **CART**，需开放类质检用 **SIMCA**；**(3)** 定量有标样用 **PLS/RF/SVR**，无标样用 **CF-LIBS+MC**，二者折中用 **Hybrid CF/ANN**。需要我针对其中某一种算法（例如 CF-LIBS 的自吸收校正，或 PLS 的 VIP 选线）给出**带公式推导或 Python/sklearn 代码**的更细版本，告诉我即可。
