LIBS常用算法

July 31, 2026 in LIBS 与光谱分析 3 minutes

机器学习基础

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

系列阅读路线


背景设定(贯穿全文的铁矿案例) 假设我们用 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|软阈值( $|c|

实现步骤:

  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 代码的更细版本,告诉我即可。