东北大学秦皇岛分校教材建设基金资助
Python 工程师系列
Python 多维数据 Analysis
编辑:赵宇辉
Python 高维数据分析
主编:赵煜辉
西安电子科技大学出版社
东北大学秦皇岛分校教材建设基金资助
Python 工程师系列
Python 多维数据 Analysis
编辑:赵宇辉
Python 高维数据分析
主编:赵煜辉
西安电子科技大学出版社
内容简介
信息系统和数据仓库中存储的高维数据属性间通常是具有相关性的,为此,降维分析是机器学习和人工智能数据处理的一个基本方法,在工商业智能中应用广泛。
高维数据分析需要的矩阵计算方法如奇异值分解、伪逆等知识和本科生的线性代数教学没有涉及。为此,本教材首先编写了矩阵计算的基本基本方法,并从特征值分解和奇异值分解出发,给出一个超定矩阵的最小二乘法问题的模型建立、证明和一般求解方法,并引出欠秩的多元线性方程组的求解方法问题。然后,教材给出两种有损的降维方法,主成分分析(主成分回归)和偏最小二乘回归,包括模型、算法和多个实例,并扩展到线性回归的正则化方法,给出了岭回归和lasso的原理算法和实例。最后,通过红外光谱的标定迁移实例将线性模型扩展到迁移学习领域。
每个章节都有基于python语言和sklearn机器学习库分析红外光谱数据集的实例。红外光谱集是关于物质吸光率的纯数据,可以与其标签数据物质浓度直接进行回归分析,这样读者可以把精力最大程度的集中在高维数据的建模、算法实现和分析过程的学习上。
前言
在人工智能时代,各个领域都需要统计处理像语音、图像、视频、蛋白质、DNA、物质的光谱等这样的维度在几十几百甚至成千上万的高维数据。直接处理,不仅十分耗时且大部分情况无法直接计算。为此,如何分析高维数据是人工智能应用的一个基本问题,这涉及矩阵计算和数据降维方法。有许多降维方法,如典型相关分析、Fisher's线性判别分析、独立成分分析等,本书着重介绍了主成分分析,偏最小二乘法和正则化方法这三种最基础也是最有代表性的数据分析方法。
矩阵计算是学习高维数据分析的基础,第一章主要介绍了矩阵计算的基本概念,常见的矩阵分解方法和二次型等,本章的特征值分解和奇异值分解是后面章节的基础,也是机器学习的基础知识。通过第一章的学习,你可以拥有打开高维数据分析大门的钥匙。第二章给出了正定矩阵的最小二乘解的证明和相关的性质,进而引出欠秩矩阵的一般求解方法问题。如果已经对矩阵计算的基础知识比较了解了,读者可以有选择的学习这两章内容。
第三章从分析葡萄酒成分数据引入主成分分析问题,不但介绍了主成分分析的基础知识,如理论推导、算法以及python程序实例和结果展示,而且在主成分回归、在线过程分析中主成分的应用实例等方面进行了扩展,让读者能够从几个简单的python程序中就学习到解决实际问题的基本方法。
第四章详细介绍的偏最小二乘算法是从自变量和因变量的关系来分析数据的方法,其降维数据方法是求解与目标数据(因变量)相关性最大的潜变量。本章先给出SIMPLS和NIPALS两种常见偏最小二乘算法,然后介绍的stack PLS算法是偏最小二乘的集成学习方法,目的是教给读者如何扩展这些基本的数据分析方法。本章详细的介绍了如何通过交叉验证选择潜变量数量的方法,也介绍编写数据分析程序的许多细节知识,读者可以通过模仿和实践这些程序开发过程,得到很好的用Python语言进行数据分析的训练。
第五章通过介绍岭回归和lasso这两个理论模型,说明了对数据进行正则化约束的基本方法,并给出了算法的数学模型,调用sklearn包的lasso和岭回归的python程序。
第六章将介绍迁移方法,扩展前面介绍的已有域建立的线性回归模型到其他场景。通过一个不同红外光谱仪测定的光谱信号存在差异的现象,引出了建立的红外光谱偏最小二乘模型不适用其他仪器,介绍了这个标定迁移学习问题的研究背景以及相关方法,然后给出了两个基于特征的标定迁移方法及其python程序、实验结果和数据分析过程。
这本书是机器学习和人工智能教学的一个数学基础开始的课程,大量的化学计量学数据和光谱数据Python程序实例,能够让读者从理解最小二乘法的原理和其在处理实际数据中面临的问题,循序渐进的处理高维数据的降维和回归问题。多数章节都有采用近红外光谱数据的Python程序实例。红外光谱数据物理和化学意义简单,纯数值型高维小样本数据,以其为处理对象可以使读者精力能够集中在算法的设计、模型的推导和问题的解决上,不需要考虑不同应用中复杂的数据预处理需要。
本书的第一二章主要借鉴了Matrix Computations for Signal Processing中的内容,最后一章给出的是笔者发表的两篇论文,其余章节引用了几篇经典算法的原始论文,并且按照原文设计了相关的Python程序。读者阅读原始文献,分析算法过程,学习和运行程序示例,可以更好地理解高维小样本数据分析思想,这对于后面深入机器学习的各个研究领域都是很好的基础训练过程。
本书已经在东北大学秦皇岛分校2016级信息管理与信息系统专业的本科教学中试用,并根据学生反馈意见进行了修稿。同学们在使用该教材后,普遍认为该书提高了他们的英文文献的阅读能力,不再惧怕阅读机器学习领域的科研文献,并且书中给出的代码实现过程,很好的解释了文献中的思想,使同学们掌握了阅读并实现文献所述方法的学习思路,python代码能力得到了很好的锻炼,学到了如何用python解决真实数据的处理和分析问题的方法。
本书不仅适合信息管理和信息系统专业、计算机相关专业和大数据专业的大学生和研究生朋友,还适合从事光谱分析、化学分析和化学计量学的研究人员,本书引用的原始文献和数据对上述人员是非常有帮助的,当然,本书也适合对数据分析和研究感兴趣的其他python工程师。我们希望读者您能发现本书的实用性,并且能够在工作中有效地运用这些知识。
赵煜辉博士对全书内容做了整体安排,并且编写了第二、五、六章内容,高书礼、于金龙、赵子恒分别编写整理了第一章、第三章、第四章内容,全书代码由赵子恒、于金龙编写校对。
本教材是东北大学秦皇岛分校教材建设基金资助项目。
内容
1. 矩阵计算的基础1
1.1基本概念1
1.1.1符号1
1.1.2矩阵乘法 1 的“Bigger-Block”解释
1.1.3基本线性代数3
1.1.4 矩阵的四个基本子空间8
1.1.5向量范数9
1.1.6行列式10
1.1.7 行列式的性质11
1.2 T最基本的矩阵分解13
1.2.1 高斯消元法13
1.2.2 LU 分解14
1.2.3 LDM 因式分解15
1.2.4 对称矩阵的 LDL 分解15
1.2.5 Cholesky 分解16
1.2.6 Cholesky 分解的应用和示例16
1.2.7Eigendecomposition19
1.2.8 矩阵规范26
1.2.9 协方差矩阵28
1.3 奇异值分解 (SVD)31
1.3.1 Orthogonalization 31
1.32 SVD 的存在证明32
1.3.3 对 SVD35 进行分区
1.3.4 SVD 的属性和解释35
1.3.5SVD 与 ED 的关系39
1.3.6 SVD 40 的椭球体解释
1.3.7 一个有趣的定理42
1.4 Quadratic 形式43
1.4.1 Quadratic 形式理论43
1.4.2 高斯多变量概率密度函数46
1.4.3 瑞利商48
2. 最小二乘问题的解50
2.1 线性最小二乘估计50
2.1.1 示例:自回归建模50
2.1.2 Least 方解决方案51
2.1.3 正态方程的解释54
2.1.4 LS 估计的属性55
2.1.5 线性最小二乘估计和 Cramer Rao 下界60
2.2 解决最小二乘问题的广义“伪逆”方法63
2.2.1 使用 SVD63 的最小二乘法
2.2.2 伪逆65 的解释
3. 主成分分析68
3.1 引言示例68
3.2 理论73
3.2.1 采用线性组合73
3.2.2 解释的变化74
3.2.3 PCA 作为模型75
3.2.4 使用更多组件75
3.3 PCA76 的历史
3.4 实践方面76
3.4.1 预处理76
3.4.2 选择元件数量77
3.4.3 将 PCA 用于其他目的时83
3.4.4 检测异常值84
3.4.5 参考资料90
3.5 sklearn PCA 90
3.5.1 源码91
3.5.2 示例94
3.6 主成分回归95
3.6.1 源码96
3.6.2 K 折叠 Cross-V 离子98
3.6.3 例子s99
3.7 PAT 应用中用于动态模型估计的子空间方法107
3.7.1 简介107
3.7.2 Theory108
3.7.3 化学计量学中的S空间模型110
3.7.4 M同类凝血监测111
3.7.5 S卫星天基监测112
3.7.6 Results113
3.7.7.结语 117
3.7.8. 附录117
3.7.9 参考文献 121
4. 偏最小二乘法122
4.1 基本概念122
4.1.1 偏最小二乘法123
4.1.2 偏最小二乘法的形式124
4.1.3 PLS 回归126
4.1.4 统计127
4.1.5 参考文献 128
4.2 NIPALS 和 SIMPLS 算法129
4.2.1 NIPALS 129
4.2.2 简化器132
4.2.3 参考文献 137
4.3 标准偏最小二乘法的编程方法 138
4.3.1 Cross-validation 138
4.3.2 NIPALS149 程序
4.4 示例应用程序151
4.4 1 PLS151 演示
4.4.2 Corn 数据集155
4.4.2 W热数据集160
4.4.3 药片数据集162
4.5 堆叠偏最小二乘法165
4.5.1 简介165
4.5.2 堆栈偏最小二乘法理论 166
4.5.3 SPLS170 演示
4.5.4 实验176
4.5.5 参考文献 184
5.1 正则化186
5.1.1 分类186
5.1.2 吉洪诺夫正则化187
5.1.3 稀疏度的正则化器187
5.1.4 正则化在统计和机器学习中的其他用途188
5.2 Ridge 回归:非正交概率的偏倚估计ms189
5.2.1 最佳线性无偏估计的 P 参数 190
5.2.2 岭回归191
5.2.3 山脊痕迹193
5.2.4 Ridge Regression195 的 M ean 平方误差特性
5.2.5 Ridge 回归199 的一般形式
5.2.6 回归中的其他工作 200
5.2.7 选择更好的估计值
5.2.8 参考资料202
5.3 套索203
5.3.1 简介203
5.3.2 套索理论204
5.3.3 参考文献 209
5.4 Ridge 回归和 Lasso 回归示例 210
5.4.1 E示例210
5.4.2 实用示例212
5.5 稀疏 PCA216
5.5.1 简介216
5.5.2 动机和方法细节217
5.5.3 用于 p≥n 和基因表达阵列的 SPCA 222
5.5.4 SPCA223 演示
5.5.5 参见226
6. 传输方法227
6.1 光谱模型的校准传输1227
6.1.1 简介227
6.1.2 校准传输设置228
6.1.3 相关工作230
6.1.4 新的或改编的方法234
6.1.5 需要转移标准品的方法的无标准品替代方案236
6.1.6 参考资料236
6.2 用于 NIR 定量分析的基于 PLS 子空间的校准转移1239
6.2.1 校准传递方法239
6.2 2 实验241
6.2.3 结果与讨论242
6.2.4 结论250
6.3 基于仿射不变性的无标准样品 NIR 的校准传递1253
6.3.1 理论253
6.3.2 实验性的258
6.3.3 结果与讨论259
6.3.4 结论268
6.3.5 References 268
1.矩阵计算的基础
1.1基本概念
本章的目的是复习线性代数中的重要基本概念,作为本课程其余部分的基础。我们首先讨论基本构建块,例如从 “大块” 角度对矩阵乘法的概述、线性独立性、子空间和相关思想、秩等,这些都是线性代数的严谨性所依赖的。然后,我们讨论了向量范数,以及矩阵乘法运算的各种解释。我们以对行列式的讨论结束本章。
1.1.1符号
在本课程中,我们将指出矩阵 是有维度的,并且其元素取自实数集,通过符号这意味着矩阵属于实数的笛卡尔积,取时间,每个元素一个。以类似的方式,表示法意味着矩阵是维度的,并且元素取自复数集。矩阵维度 “” 是指由 m 行和 n 列组成。
同样,该表示法意味着一个维度向量 ,其元素取自实数(复数)集。“向量的维度”是指它的长度,即它由元素组成。
此外,我们将通过符号表示标量来自实数(复数)的集合。因此,大写粗体字符表示矩阵,小写粗体字符表示向量,小写非粗体字符表示标量。
按照惯例,默认情况下,向量被视为列向量。此外,对于矩阵,我们将它的第 i 列表示为 。我们还暗示它的第 j 行是,即使这种表示法可能模棱两可,因为它也可以被视为表示第 j 列的转置。讨论的背景将有助于解决歧义。
1.1.2矩阵乘法的“Bigger-Block”解释
让我们定义矩阵乘积 as
现在,此操作的三种解释如下:
1.1.2.1 内部积表示
如果和是相同长度的列向量,则标量称为 和 的内积。如果我们将 的第 i行 和 第 j 列定义为 ,则 的元素 定义为内积 。这是矩阵乘法的常规小块表示。
1.1.2.2列表示
这是矩阵乘法的下一个更大的块视图。在这里,我们看看如何一次形成一列产品。的第 j 列可以表示为 具有系数的列的线性组合,系数是第 j 列的元素。因此
此操作与上面的内部积表示形式相同,只是我们一次形成一列产品。例如,如果我们只计算第 j 列的第 p 个元素,我们会看到 (1.1.2) 退化成。这是 和 的第 p 行和第 j 列的内积,这是 的元素 .
1.1.2.3外积表示
这是最大的块表示。我们定义一个列向量和一个行向量。则 和 的外积是秩为 1 的矩阵,定义为。现在设 和 分别是 和 的第 i 列和第 i 行。那么乘积也可以表示为
通过一次查看一列的运算,我们可以看到这种形式的矩阵乘法执行与上述列表示完全相同的操作。例如,产品的第 j 列由 (1.1.3) to be,这与 (1.1.2) 以上。
1.1.2.4矩阵前乘法和后乘法
现在让我们看看区分矩阵前乘法和后乘法的一些基本思想。在这方面,考虑一个预先乘以得到的矩阵(假设所有矩阵都具有可匹配的维度)。然后我们可以将这个乘法解释为对 的列进行操作 ,以给出乘积的列。这是因为 product 的每一列都是相应列的转换版本;即,, 。同样,让我们考虑后乘以一个矩阵 ,得到然后,我们将这个乘法解释为对 的行进行操作,因为乘积的每个 row 都是相应行的转换版本;即,,,,,,其中我们定义为 的第j 行 .
示例:考虑一个适当维度的正交矩阵。我们知道乘以正交矩阵会导致旋转运算。该操作将轮换 的每列。该操作将轮换每一行。
还有另一种方法可以解释前乘法和后乘法。再次将矩阵 预先乘以得到。然后根据 (1.1.2) 的第 j 列是 的列的线性组合,其系数是第 j列 的系数。同样,因为,我们可以说第 i 行是 的行的线性组合,其系数是 的第 i 行 .
这两种解释中的任何一种都同样有效。熟悉本节的表示是掌握线性代数领域的一大步。
1.1.3基础线性代数
1.1.3.1线性独立性
假设我们有一组 n 个 m 维向量s ,其中 i=1...n。在条件 1 下,该集合是线性独立的
用 word 来说:方程 (1.1.4) 表示当且仅当向量的唯一零线性组合的系数全部为零时,一组向量是线性独立的。
如果可以通过采用向量的所有可能线性组合来形成 n 维空间,则一组 n 向量是线性独立的。如果空间的维度小于 n,则向量是线性相关的。向量空间的概念和向量空间的维度稍后会变得更加精确。
请注意,一组向量 where 不能线性独立。
示例 1:
此集合是线性独立的。另一方面,集合
莫。这是因为第三列是前两列的线性组合。(第一列的 -1 乘以第二列的 -1 等于第三列。因此, (1.1.4) 导致零的是 (1, 1, 1) 的任何标量倍数。
1.1.3.2跨度、范围和子空间
在本节中,我们将探讨这三个密切相关的概念。事实上,它们的数学定义几乎相同,但每种情况下的解释都不同。
跨度:
向量集的跨度,写为 ,其中,是由
换句话说,是向量 a 的所有可能线性组合的集合。如果向量是线性独立的,则这组线性组合的维度为 n。如果向量是线性相关的,则维度较小。
span 中的向量集称为 向量空间。向量空间的维度是形成空间的线性组合中线性独立向量的 n 个整数。请注意,向量空间维度不是形成线性组合的向量的维度(长度)。
示例 2:考虑图 1.1 中的以下 2 个向量:
图 1.1这些向量的跨度是纸张的 (无限延伸) 平面。
子空间
给定一组(空间)向量,子空间 是满足两个要求的向量子集:
如果 和 在子空间中,则 is 仍在子空间中。
如果我们将 子空间中的任何向量 x 乘以标量 c,则 仍在子空间中。
这两个要求意味着,对于子空间,位于子空间中的任何向量线性组合本身都在子空间中。将这个想法与 span 的想法进行比较,我们可以看到由向量定义的子空间 与 相同。但是,子空间的解释是,构成子空间的向量集必须是更大空间的子集。例如,图 1 中的向量。1.1 定义一个子空间(纸张的平面),它是三维宇宙的子集。
因此,从形式上讲,k 维子空间S由 span 确定,其中不同的索引满足;也就是说,向量空间 是 .
请注意,这不一定是子空间S 的基础。仅当该集合是最大独立集时,它才是基数。这个想法稍后会讨论。该集合不需要线性独立来定义 span 或子集。
范围:
表示为 的矩阵的范围是满足
我们可以根据矩阵乘法的列表示 (1.1.2),其中产品只有一个列。因此,我们看到 是 列的线性组合,其系数是的元素。因此,(1.1.8) 等效于 (1.1.7),因此是 的列的跨度。range 和 span 的区别在于 range 的参数是一个矩阵,而 span 的参数是一组向量。如果 的列是(不是)线性独立的,那么将(不)跨越 n 个维度。因此,向量空间的维度小于或等于 n。任何向量 的维度(长度)为 m。
示例 3:
R(A) 是任意两列的所有线性组合的集合,当 n < m (即,是一个高矩阵)时,重要的是要注意它确实是 m 维“宇宙”的子空间。在这种情况下,的维度小于或等于 n因此,不跨越整个宇宙,因此是它的子空间。
1.1.3.3最大独立集
这是一个 vector set,它不能在不失去独立性的情况下变大,也不能在不保持最大值的情况下变小;即它是一个包含跨越空间的最大数量的独立向量的集合。
1.1.3.4A 基础
子空间的基是子空间内任何最大独立的集合。它并非独一无二。
示例 4 跨 前 2 列的子空间的基数
,即
是
或任何其他线性独立的集合是。中的任何向量都唯一地表示为基础向量的线性组合。
1.1.3.5正交补码子空间
如果我们有一个由向量组成的维度 n 的子空间,则维度m – n 的正交补码子空间定义为
即,任何向量 in 都与任何向量 in 正交。数量发音为“S-p rep”。
示例 5:采用示例 4 中定义的向量集:
那么,的基 是
1.1.3.6等级
排名是一个重要的概念,我们将在整个课程中经常使用。我们在这里只简要描述 rank 的几个基本特征。以下各节将更全面地扩展这一概念。
矩阵的秩是线性独立的行或列的最大数量。因此,它是矩阵的列(行)的基维数。
的秩(表示)是 的维度
如果 和 ,则,
如果矩阵的秩小于 min(m,n),则称矩阵为秩不足。否则,称其为满秩。
如果是 square 且秩不足,则 .
可以证明。关于这一点,稍后会详细讨论。
如果矩阵的排名等于列(行)数,则称矩阵为全列(行)排名。
示例:示例 5 中的 秩为 3,而示例 3 中的 秩为 2。
1.1.3.7A 的 Null Space
的 null 空间 定义为
从前面的讨论中,乘积 是 的列的线性组合,其中的元素是相应的系数。因此,从 (1.1.13) 是列的所有零线性组合的非零系数的集合。如果 的列是线性独立的,那么根据定义,因为除了 0 之外不能有其他系数,这会导致线性组合为零。在这种情况下,空空间的维度为零,并且是全列排名。当且仅当is full column rank 时,空空间为空,当is column rank deficient2 时为空。请注意,中的任何向量都是维度 n。任何向量 in都与 的行正交,因此位于 的行跨度的正交补码中 .
例 6:与示例 3 中的相同。那么其中 c 是一个实数。
另一个示例如下。取 3 个向量 ,其中 ,它们被约束为位于 2 维平面中。然后存在这些向量的零线性组合。此线性组合的系数定义位于 的 null空间中的向量。在这种情况下,我们看到rank 不足。
矩阵的另一个重要特征是它的空性。的 nullity是 的 null 空间的维度。在上面的示例 6 中,null为 1。然后我们有以下有趣的属性:
1.1.4 矩阵的四个基本子空间
关注的四个矩阵子空间是:列空间、行空间和它们各自的正交补码。这四个子空间的发展密切相关,我们在本节中假设,其中 .
1.1.4.1列空间
这很简单。它的维度是 r。它是 列的所有线性组合的集合 .
1.1.4.2列空间的正交补码
这可以表示为,维度为 m- r。它可能被证明等同于,如下所示:根据定义,集合 x 是否令人满意:
其中 columns of 是 的行。从 (15) 中,我们看到 是 的集合与 (rows of) 的所有列正交。根据定义,这是 .
1.1.4.3行空间
行空间被简单地定义为,维度为 r。行间距是行的范围或行跨越的子空间,或者是 的行的所有可能的线性组合的集合 .
1.1.4.4行空间的正交补码
这可以表示为 。它的维度是 n − r。这个集合必须是与以下所有行正交的集合:即,要在这个空间中,必须满足
因此,集合 x 是满足 (16) 的行空间的正交补码,它就是.
我们之前已经注意到了。因此,行子空间和列子空间的维度相等。这很令人惊讶,因为它意味着矩阵的线性独立行数与线性独立列数相同。无论矩阵的大小或秩如何,这都成立。这不是一个直观上显而易见的事实,也没有立即明显的原因来解释为什么会这样。然而,矩阵的排名是独立行或列的数量。
1.1.5向量范数
vector norm 是一种表示与向量相关的长度或距离的方法。向量空间上的范数是一个函数 f,它将一个点 in 映射到一个点 in。从形式上讲,这在数学上表示为 s .
该规范具有以下属性:
为了所有人.
当且仅当x = 0 时。
为 .
为 .
我们将函数表示 为 p-norms:这是一类有用的范数,推广了欧几里得范数的思想。它们由
如果 p = 1:
它只是元素的绝对值之和。
如果 p = 2:
这是我们熟悉的欧几里得规范。
如果 :
这是 的最大元素。这可能以以下方式显示。如 ,(1.1.17) 中圆括号内的最大项主导所有其他项。因此 (1.1.17) 可以写成
其中 k是对应于 largest element 的索引。请注意,p = 2 范数具有许多有用的属性,但计算成本很高。显然,1 范数和 ∞ 范数更容易计算,但更难用代数方式处理。所有 p-norm 都遵循向量范数的所有属性。
1.1.6行列式
考虑一个方阵我们可以将矩阵定义为通过删除标量数(其中 det(·) 表示行列式)的第 i 行和第 j 列得到的子矩阵,称为与元素关联的次矩阵。签名的未成年人称为 .
的行列式 是 的列(行)中包含的 m 维体积。正如我们稍后看到的,这种对行列式的解释非常有用。矩阵的行列式可以通过表达式
或R
以上都称为行列式的协因子扩展。方程 (1.1.19) 沿 的第 i 行,而 (1.1.20) 沿第 j 列。确实有趣的是,上面的两个版本都给出了完全相同的数字,无论 i 或 j 的值如何.
方程 (1.1.19) 和 (1.1.20) 用 的辅因子表示 m × m行列式,这些辅因子本身就是决定因素。因此,(1.1.19) 或 (1.1.20) 最终将产生矩阵的行列式 .
从 (19) 可以明显看出,如果是三角形,则 是主要对角线元素的乘积。由于对角矩阵位于上三角集中,因此对角矩阵的行列式也是其对角线元素的乘积。
1.1.7 行列式的属性
在我们开始讨论之前,让我们定义一个平行管道的体积,该体积由一组列向量定义,该列向量由一个矩阵组成,作为该矩阵的主体积。我们有以下行列式的性质,这些性质在没有证据的情况下陈述:
矩阵乘积的主体积是每个矩阵的主体积的乘积。
此性质表明 和 的特征多项式3 相同。因此,正如我们稍后看到的,和 的特征值 是相同的
, .
这反映了这样一个事实:如果定义主体积的每个向量乘以c,则得到的体积乘以 .
是单数。
这意味着相应矩阵的主体积的至少一个维度已折叠为零长度。
,其中是 的特征(奇异)值这意味着由矩阵的列向量或行向量定义的平行圆柱体可以转换为相同 m 维体积的规则矩形实体,其边的长度对应于矩阵的特征(奇异)值。
正交 5 矩阵的行列式是 ±1。
这很容易看出,因为正交矩阵的向量都是单位长度并且相互正交。因此,相应的主卷为 ∓1。
如果 是非奇异的,则
如果 是非奇异的,则
如果 B 是通过交换任意两行(或列)从 中获得的,则.
如果 B 是通过将一行的标量倍数添加到另一行(或一列的标量倍数添加到另一列)从 A 获得的,则 .
行列式的另一个属性允许我们计算 的倒数。将矩阵定义为 :
其中cij 是 的辅因子。根据 (1.1.19) 或 (1.1.20),则第 i行 乘以第 i 列 ai 为;即
也可以证明
然后,结合 (1.1.22) 和 (23) 因为我们有以下有趣的属性:
其中是 单位矩阵。然后它从 (1.1.24) 的倒数为
(1.1.19) 和 (1.1.25) 都不是分别计算行列式或逆的计算效率方法。利用各种矩阵分解特性的更好方法将在课程后面体现出来.
方程 (1.1.4) 称为向量 a 的线性组合。每个向量乘以权重(或系数)c,然后对结果求和。
列排名不足是指矩阵的排名小于列数。
矩阵的特征多项式在第 1.2.7.2 章中定义。
5正交矩阵在第 1.2.7.2 章中定义。
1.2 T最基本的矩阵分解
1.2.1 高斯消元法
在本节中,我们将详细讨论高斯消元的概念,但我们通过给定方程组的高斯消元的基本方法的示例,非常快速地进行修订。
这里的 W 是非单数的。上述系统可以扩展为表单。
为了求解该系统,我们通过高斯消元法将该系统转换为以下上三角系统:
使用一系列基本行操作,如下所示
素数表示相应的量已更改 每个基本运算都保留原始方程组。 每个运算都设计为将零放置在主对角线下方的适当位置 .
一旦被三角化, 就通过对系统应用向后替换来获得解决方案。使用此过程,首先从 (1.2.3) 的最后一个方程确定。然后可以从倒数第二行等确定 算法可以由以下架构总结:
1.2.1.1 后换的准确性真是太棒了?
对于浮动点数的操作,我们必须关注结果的准确性,因为浮动点数本身包含误差 我们想知道实数浮动点表示中的小误差是否可能导致计算结果中的大误差 在这个版本中,我们可以证明计算出的解决方案n 满足表达式。
Whereand you 是机器 epsilon。请注意上一讲中讨论的绝对值表示法的使用)。上面的方程表明,这是一个轻微扰动系统的精确解。我们看到 F 的所有元素都是 因此我们得出结论,由向后替换过程引起的解误差与仅由浮点表示引起的误差具有相同的顺序;因此 back substitution 是稳定的。数值稳定的算法是指对于输入值中的小误差,其输出值中产生相对较小的误差的算法。这种误差性能与我们后面看到的普通形式的高斯消元法形成鲜明对比。
矩阵的高斯消元法所需的 fl ops 总数可以显示为(一个 “flop” 是一个浮点运算,即浮点加、减、乘或除)。很容易证明,向后替换需要翻牌。因此,求解所需的运算数量由高斯消元法过程主导。
1.2.2 LU 分解
假设我们可以找到一个下三角矩阵,其中 1 沿主对角线和一个上三角矩阵,使得:
这种分解 称为 LU 分解。为了求解系统 or 我们将变量定义为 和 然后
由于这两个系统都是三角形的,因此很容易求解。第一个系统只需要前向消除;第二个唯一的后场换人。前向消除是类似于向后替换的过程,但在较低的三角形系统而不是较高的三角形系统上执行。前向替换需要与后向替换相同数量的 flops,并且同样稳定。因此,一旦 LU 分解完成,系统的解就很容易了:一旦 LU 因式分解完成,所需的 flops 总数就是。
1.2.3 LDM 因式分解
如果在高斯消元过程中没有遇到零枢轴,则存在单位下三角矩阵和对角矩阵,使得
理由:既然存在,就设上三角,其中:因此,要显示。的每一行 of 是除以其对角线元素的相应行。
然后,我们求解相当于三个步骤 的系统:
let 和 solve (flops )
let 和 solve ( flops )
SOLVE (失败)
1.2.4 对称矩阵的 LDL 分解
对于对称非奇异矩阵,因子 和 是相同的。
1.2.4.1 证明
设矩阵是对称的(从左侧)和下三角形(从右侧)。因此,它们都是对角线的。但 是非奇数,所以 也是对角线。矩阵和都是单位下三角 (ULT)。可以很容易地证明 ULT 矩阵的逆矩阵也是 ULT,此外,ULT 矩阵的乘积是 ULT。因此是 ULT,因此也是 .
这意味着对于对称矩阵, LU 因式分解只需要 flops,而不是一般情况。这是因为只需要计算较低的因子。
1.2.5 Cholesky 分解
现在,我们考虑对 LU 分解的几项修改,这些修改最终导致了 Cholesky 分解。这些修改是 1) LDM 分解,2) 对称矩阵上的 LDL 分解,以及 3) 正定对称矩阵上的 LDL 分解。Cholesky 分解仅与平方对称正定矩阵相关,并且 an 很重要。本节末尾提供了使用 Cholesky 分解的几个示例。
对于对称和正定,存在一个具有正对角线项的下三角矩阵,使得 .
1.2.5.1 证明
考虑哪个是正的、定的和对称的请注意,协方差矩阵属于此类。 因此,因此如果 是正定的,则 是满秩;让。那么,当且仅当 的所有元素都是正的。因此,如果是正定的,则 .
因为ause是对称的,所以 e 因为e是正的,所以n. 然后根据需要。
如前所述,这种分解在没有旋转的情况下是稳定的。因此,在求解 其中 对称且正定的系统时(例如,对于 其中 是样本协方差矩阵的情况),Cholesky 分解在计算的 LU 分解阶段只需要一半的 flops,并且不需要旋转。这两个因素都显著缩短了算法的执行时间。
1.2.6 Cholesky 分解的应用和示例
1.2.6.1 生成具有所需协方差的向量过程
我们可以使用 Cholesky 分解来生成具有所需协方差矩阵的随机向量过程由于必须是对称的且为正定的,因此设
是 Let 的 Cholesky 分解 是一个具有不相关元素的随机向量,使得 Such 很容易由计算机上的随机数生成器生成。然后,定义为:
向量过程 具有所需的协方差矩阵,因为
当需要创建具有指定协方差矩阵的随机向量过程时,此过程对于计算机模拟特别有用。
1.2.6.2 美白进程
这个例子基本上是刚才讨论的那个例子的反面。假设我们有一个平稳向量过程 n。 这个过程可以是从 n 个传感器阵列的元件接收到的信号,它可以是任何时变信号的 n 个顺序样本集,或者是长度为 n 的抽头延迟线均衡器中的数据集,在时间时刻等。让进程由信号部分和噪声部分组成 :
我们假设噪声的协方差不是对角线的。因此,噪声是相关的或着色的。此讨论需要已知或可以估计。
设为 的 Cholesky 因式分解,使得 (1.2.13) 的两边都预乘 :
noise 组件现在是。相应的噪声协方差矩阵为
因此,通过将原始信号预乘噪声的逆 Cholesky 因子,得到的噪声为白色。通过预乘协方差矩阵的平方反比根(而不是其他一些因子)来白化序列是信号处理中的一个重要概念。逆 Cholesky 因子最常应用于这些情况,因为它稳定且易于计算。
由于接收信号的联合概率密度函数 ,给定无噪声信号,在存在具有协方差矩阵的高斯噪声样本的情况下,只是噪声本身的 pdf,由本节中讨论的多维高斯概率密度函数给出。1.2.1:
相反,假设我们 通过与 的逆 Cholesky 因子 进行预乘 来变换向量,以形成 此变换使噪声白化。从上面的讨论中,我们看到变量的协方差矩阵 是恒等式。
因此
因此,在(1.2.17)我们白化了噪声的情况下,对信号的任何涉及检测或估计的处理都可以通过独立于其余变量处理每个白化变量来完成 ,因为这些变量被证明是独立的。相反,如果我们希望以有色噪声处理原始信号,我们必须共同处理整个向量,因为通过 (1.2.16) 的指数中的二次形式引入的元素之间存在依赖关系。因此,当噪声被着色时,白化过程大大简化了对信号的处理。
作为使用 Cholesky 分解的另一个示例,我们考虑具有协方差的零均值随机向量的多变量高斯 pdf 分布的指数是 那么 Cholesky 因子在哪里 如果我们让,则分布的指数变为 但是从我们看到 的协方差是 即, 是白色的。因此,我们看到 高斯 pdf 指数中的矩阵具有将原始随机变量转换为 另一个随机变量的作用,其元素与单位方差无关。因此,对原始变量进行白化和归一化 .
这些变量被证明是独立的 相反,如果我们希望在彩色噪声中处理原始信号 x,我们必须联合处理整个向量 x,因为事实上存在依赖关系 ongst 通过指数中的二次形式引入的元素 (1.2.16)。 因此,当噪声着色时,白化过程显着简化了对信号的处理.
作为使用 Cholesky 分解的另一个示例,我们考虑具有协方差的零均值随机向量的多变量高斯 pdf 分布的指数是 Cholesky 因子在哪里 如果我们让 则分布的指数变为 但是从 (1.2.15) 开始,我们看到 的协方差 是 ; 即 w 是白色的 因此我们看到, 高斯 pdf 指数中的矩阵具有将 original 随机变量 x 转换为另一个随机变量 的作用,其元素与单位方差无关因此 白化和归一化原始变量 .
1.2.7Eigendecomposition
特征值分解是将矩阵分解为以下形式:
其中 是该矩阵的特征向量,正交矩阵是可逆的。= diag是一个对角线数组,每个对角线元素都是一个特征值。
首先,需要明确的是,矩阵实际上只是一个线性变换,因为当你将矩阵乘以一个向量时,你会得到一个向量,你实际上是在对这个向量进行线性变换。
当矩阵处于高维状态时,那么矩阵在高维空间下进行线性变换,线性变化可能不是用图片来说的,但是可以想象,这种变换也有很多方向的变化,我们首先从特征值分解特征向量得到 N,然后矩阵的主 N 改变方向。我们可以使用前 N 个方向来近似这个矩阵。这就是我之前说的:提取这个矩阵最重要的特征。所以总而言之,特征值分解会给你特征值和特征向量,特征值代表一个特征有多重要,而特征向量代表一个特征是什么,你可以把每个特征向量看作一个线性子空间,我们可以用这些线性子空间做很多事情。
但是,特征值分解也有很多限制,例如矩阵的变换必须是方阵。
在图像处理中,一种方法是特征值分解。我们都知道图像实际上是像素值的矩阵,所以假设我有一张图像,我对这个图像矩阵进行特征值分解,我实际上正在提取这个图像的特征,提取的特征是对应于特征向量的向量。但是,这些特征在图像中的重要性由特征值表示。比如图像矩阵的分解,得到的特征向量矩阵,而且只在对角线上的元素上矩阵 E 不为零,对角线上元素的特征值也是从大到小排列的(模数,对于单个数字,是取绝对值),也就是说图像是从 100 个特征中提取出来的, 100 x 100 数字特性的重要性,表示 100 个数字在对角矩阵中。在实践中,我们发现有 100 个特征从它们的特征值大小点提取出来,只有前 20 个最(这 20 个可能没有,有大量的 10 个,有大量的 30 个或更多)特征对应的特征值非常大,接近 0,后面是后面对特征的贡献图像几乎可以忽略不计。我们知道,对图像矩阵进行特征值分解后,可以得到矩阵和矩阵.
因此,如果你取相反的,你把右边的三个矩阵相乘,你会得到 。既然我们知道矩阵中只有前 20 个特征值更重要,那么我们可以尝试将矩阵 E 中除前 20 个特征之外的所有特征都设置为 0,即只取图像的前 20 个主要特征来恢复图像,其余的都丢弃,看看此时会发生什么.
1.2.7.1 特征值和特征向量
假设我们有一个矩阵 :
我们研究了它的特征值和特征向量。
图 1.2 各种向量的矩阵-向量乘法。
假设我们取乘积,其中,如图 1 所示。阿拉伯数字
然后
通过比较向量 和 ,我们可以看到乘积向量相对于 .
现在考虑Then.在这里,我们注意到 相对于 .
现在让我们考虑一个更有趣的情况。假设那么。现在,乘积向量指向与 相同的方向。该向量是向量 x3 的缩放版本。由于此属性, 是 的特征向量。比例因子(在本例中为 5)被赋予符号 ,称为特征值。
请注意,这也是一个特征向量,因为在这种情况下,相应的特征值为 3。
因此,我们有,如果 是 ,
即,向量的方向与因子相同,但按因子缩放 .
现在我们已经了解了特征向量的基本概念,我们继续进一步发展这个概念。 方程1.2.21 可以写成以下形式
W这里是单位矩阵。 方程 1.2.22 是一个齐次方程组,从基本线性代数中,我们知道当且仅当
其中deposition 表示行列式。 方程 1.2.23 在计算时变为多项式 in的 ance。例如,对于上面的矩阵,我们有
很容易验证这个多项式的根是 (5,3),它对应于上面指示的特征值。
方程称为 的特征方程 ,相应的多项式是特征多项式。特征多项式的次数为 n.
更一般地说,如果是,则有 的 n个解,或特征多项式的 n 个根。因此,A 有 n 个特征值令人满意;即
证明。设 和 分别是 的特征向量和相应的特征值。选择任意 (any)。然后
和
Premultiply by和 by
当 对称时,左侧的量相等。我们如下所示。由于 的左侧 是标量,因此它的 transpose 等于自身。因此,我们得到7但是,因为是对称的,。因此,,这是要展示的。
减去
当我们使用事实But by hypothesisTherefore, 仅在以下情况下满足,这意味着向量是正交的。
在这里,我们只考虑了特征值不同的情况。
如果一个特征值重复 r 次,那么仍然可以找到一个相互正交的 n 个特征向量集。
对称矩阵的特征值的另一个有用性质如下:
属性 2(Hermitian) 对称矩阵的特征值是实数。
证明 8:(通过矛盾):首先,我们考虑 true 的情况。设 λ 为对称矩阵 的非零复数特征值 。那么,由于 的元素是实数,因此 的复共轭也必须是 的特征值,因为特征多项式的根必须出现在复共轭对中。此外,如果 是对应于 的非零特征向量,则对应的特征向量必须是 的复共轭。但是属性 1 要求特征向量是正交的;因此But,根据定义,它是范数的复共轭。但是向量的范数是一个纯实数;因此,必须大于零,因为 由假设为非零。因此,我们有一个矛盾。因此,对称矩阵的特征值不能是复数;也就是说,它们是真实的。
虽然这个证明只考虑了真正的对称情况,但它很容易扩展到 Hermitian 对称的情况。
属性 3设为具有特征值 和特征向量 v 的矩阵。然后,矩阵的特征值为具有相应特征向量的 s,其中 s 是任何实数。
7 在这里,我们使用了矩阵或向量的特性, 并且 具有适形大小.
8 来自 Lastman 和 Sinha,基于微计算机的科学与工程数值方法。
证明: 根据特征向量的定义,我们有。此外,我们已经这样做了。此外,我们有。矩阵上的这个新特征向量关系表明特征向量保持不变,而特征值被 .
属性 4设 be 一个具有特征值 的矩阵 。 然后
行列式 .
跟踪9
证明很简单,但是因为使用本课程后面介绍的概念更容易,所以这里不给出。
属性 5如果 是矩阵的特征向量,则 也是特征向量,其中 是任何实数或复数常数。
证明直接通过替换 in 来跟进 。这意味着只有特征向量的方向可以是唯一的;它的规范并不唯一。
1.2.7.2正交矩阵
在进行矩阵的特征分解之前,我们必须发展正交矩阵的概念。这种形式的矩阵具有相互正交的列,每个列都是单位范数。这意味着
其中 是 Kronecker delta,和是正交矩阵 的列。考虑到 这一点,我们现在考虑产品。结果可以借助下图进行可视化:
9 方阵的 tr() 表示的轨迹是其元素在主对角线上的和(也称为“对角线”元素)。
(当 i = j 时,量 定义 的平方 2 范数,该范数已定义为 单位。当,由于 的正交性 )。方程 1.2.32 是正交矩阵的基本属性。
因此,对于正交矩阵,意味着可以简单地通过对矩阵进行转置来计算逆函数,这种操作几乎不需要计算工作。
方程 1.2.32 直接来自具有正交列的事实。数量也应该等于恒等式并不清楚。我们可以通过以下方式解决这个问题。假设和是任意两个平方可逆矩阵,使得那么,通过解析这个最后一个表达式,我们得到了
显然,如果方程 1.2.33 成立,那么量 BA 必须是恒等式10;因此,如果是这样的话。因此,如果,那么也。从这个事实可以得出,如果矩阵具有正交列,那么它也必须具有正交行。我们现在开发了正交马米的另一个有用特性:
属性 6 向量 2-范数在正交变换下是不变的。
如果是正交的,则
因此,由于范数不变,因此正交变换对向量执行旋转操作。我们稍后在研究最小二乘问题时会使用这个范数-不变性。
假设我们有一个矩阵,其中 m > n,其列是正交的。在这种情况下,我们看到 U 是一个 tall 矩阵,它可以通过仅提取任意正交矩阵的前 n 列来形成。(我们保留术语正交矩阵来指代完整的 m × m 矩阵)。因为 U 有正交列,所以 Quant.但是,重要的是要意识到在这种情况下的数量 ,与当时的情况相反。后一种关系源于这样一个事实,即长度为 m 的列向量不可能全部相互正交。事实上,我们稍后看到这是一个 到子空间的投影仪 .
假设我们有一个向量。因为它是最简单的,所以按照惯例,我们使用基来表示 b,其中 是初等向量(除了第 i 个位置的 1 之外的所有 0)。但是,在由正交矩阵的列形成的基中表示 b 通常很方便。在这种情况下,向量的元素是 b 的系数在1 中的基础。正交基很方便,因为我们只需将 .
正交矩阵有时称为酉矩阵。这是因为正交矩阵的行列式是1。
1.2.7.3 方形对称矩阵的 eigendecomposition (ED)
几乎所有执行 ED 的矩阵(至少在信号处理中)都是对称的。协方差矩阵就是一个很好的例子 ,下一节将详细讨论它。
设 是对称的。然后,对于特征值和特征向量,我们有
让特征向量归一化为单元 2 - 范数。然后,可以将这 n 个方程组合起来,或并排堆叠在一起,并以以下紧凑形式表示:
其中(即每列 都是特征向量),并且
每一侧的相应列 表示索引 i in 的一个特定值。因为我们假设是对称的,所以从属性 1 开始,它们是正交的。此外,由于我们假设了 ,是一个正交矩阵。因此,将 的两边相乘并使用 我们得到
方程称为 的特征分解 (ED)列是 的特征向量,对角线元素是相应的特征值。任何对称矩阵都可以以这种方式分解。这种形式的分解,对角线,非常有趣,并产生了许多有趣的后果。正是这种分解直接导致了我们稍后讨论的 Karhunen-Loeve 展开。
请注意,from, 的特征值和特征向量的知识足以完全指定进一步注意,如果特征值不同,则 ED 是唯一的。只有一个正交和一个对角线满足 .
方程1.2.38 也可以写成
由于是对角线的,我们说特征向量的幺正(正交)矩阵对角化没有其他正交矩阵可以对角化只有对角化的事实是特征向量的基本性质。如果你理解对称矩阵的特征向量对角化它,那么你就理解了特征值和特征向量背后的“奥秘”。就这样。我们将在本讲座后面讨论 K-L 扩展,以巩固这种解释,并展示一些非常重要的信号处理概念,这些概念脱离了 K-L 的概念。但是 K-L 分析只是这个事实的直接结果,即只有对称矩阵的特征向量对角化。
1.2.8 矩阵范数
现在我们对特征向量和特征值有了一定的了解,现在可以介绍矩阵范数了。矩阵范数与向量范数相关:它是一个映射到的函数。矩阵范数必须遵循与向量范数相同的属性。由于范数仅针对向量严格定义,因此矩阵范数是通过将矩阵映射到向量来定义的。这是通过将矩阵后乘以合适的向量来实现的。现在提出了一些有用的矩阵范数:
矩阵 -范数:矩阵 p-norm 是根据向量 p-norm 定义的。arbitrary 矩阵的矩阵 p-范数,表示为
其中 “sup” 的意思是 supremum;即,参数相对于 的所有值的最大值。由于向量范数的属性适用于任何标量 ,因此我们可以选择 in,以便 。那么,等效的语句是
现在,我们根据 的特征分解,为上述定义提供一些解释,其中 以及 square 和 symmetric 的定义。为了找到矩阵 2-范数,我们进行微分并将结果设置为零。直接区分是困难的。然而,我们注意到,找到最大化的等同于找到最大化的,而后者的微分要容易得多。在本例中,我们有 。为了找到最大值,我们使用拉格朗日乘子的方法,因为它受.
因此,我们区分数量
并将结果设置为零。上面的数量是拉格朗日乘数。这个过程的有趣结果是,必须满足
因此,(1.2.43) 的静止点是 的特征向量。当 是平方且对称时,的特征向量 等价于 的特征向量。因此,的静止点 也是 的特征向量。通过代入 , 我们发现 .
然后,解 to 由对应于 的最大特征值 的特征向量给出,并且等于 的最大特征值 .
更一般地说,在下一讲中,对于任意矩阵,它
其中是 的最大奇异值。 这个量是奇异值分解的结果,我们将在下课讨论。
对于任意值,其他值的矩阵范数为
和
Frobenius 范数:Frobenius 范数是向量的 2 范数,由矩阵的行(或列)的 2 范数组成:
矩阵范数的属性
考虑矩阵和向量。然后
此属性后跟将上述内容的两边除以 ,并应用.
如果 和是大小合适的正交矩阵,则
和
因此,我们看到矩阵 2-范数和 Frobenius 范数对正交矩阵的乘前和乘后是不变的。
进一步
其中 表示矩阵的轨迹,即其对角线元素的总和。
1.2.9 协方差矩阵
在这里,我们研究了对应于平稳离散时间随机过程的协方差矩阵的概念和性质。我们将无限序列分解 为长度为 m 的窗口,如图 1 所示。 1.3.窗户通常重叠;事实上,它们通常仅被一个样品相互取代。第 i个窗口中的样本成为 m 长度向量 因此,对应于每个窗口的向量是来自随机过程的向量样本。以这种方式处理随机信号是处理真实信号的许多形式的电子系统的基本第一步,例如过程识别、控制或任何形式的通信系统,包括电话、无线电、雷达、声纳等。
上面使用的单词 steady 表示随机过程是描述向量样本分布的相应联合 m 维概率密度函数 不随时间变化的过程。这意味着分布的所有时刻(即平均值、方差和所有互相关等数量,以及所有其他高阶统计特征)都随时间不变。然而,在这里,我们处理一种较弱的稳态形式,称为广义平稳 (WSS)。在这些过程中,只有前两个时刻(均值、方差和协方差)需要随时间不变。严格来说,协方差矩阵的概念仅与平稳或 WSS 过程相关,因为只有当底层过程是平稳的时,期望才有意义。
图例.1.3: 接收到的信号被分解成长度为 m 的窗口。第 i 个窗口中的样本包含向量。
对应于稳态过程或 WSS 过程的协方差矩阵 定义为
其中是过程的向量均值,表示图 m 中长度为 m 的索引 i 的所有可能窗口上的期望运算符 。1.3.我们经常处理零均值流程,在这种情况下,我们有
w这里 取所有窗口的期望,方程1.2.52 告诉我们 的元素 根据定义是 ,它是均方值(首选项是方差,其符号是该过程所有可能的向量样本的第一个元素 。 都等于 。因此,的所有主要对角线元素都等于过程的方差。该元素是第一个元素和第二个元素之间的互相关。考虑到所有可能的窗口,我们看到这个量是过程和本身的互相关,延迟了一个样本。 第一个上对角线上的所有元素都等于一个样本的时间滞后的互相关。由于乘法是可交换的,因此第一个较低对角线上的所有元素也都等于这个相同的互相关值。使用类似的推理,第 j 个上对角线或下对角线上的所有元素都等于j 个样本的时间滞后的过程的互相关值。因此,我们看到矩阵是高度结构化的。
让我们比较一下图 1 所示的过程。如图 1.3 所示。1.4.在前一种情况下,我们看到这个过程的变化相对较慢。因为我们假设 为零均值,所以图 1 中过程的相邻样本。1.3 在大多数情况下将具有相同的符号,因此将是一个正数,接近该值。也可以这样说,只是它不是那么接近。因此,我们看到,对于图 1 的过程。1.3 中,对角线衰减得相当缓慢,远离主对角线值。
然而,对于图 1 所示的过程。1.4,相邻样本彼此不相关。这意味着相邻样本具有相同符号的可能性相同。平均而言,具有正值的项与具有负值的项具有相同的量级。因此,当采用预期时,得到的平均值接近于零。在这种情况下,我们看到协方差矩阵集中在主对角线上,并变得等于我们注意到 的所有特征值都等于该值。由于这一特性,此类过程被称为“白光”,类似于白光,其光谱分量都相等。
该序列等效于过程的自相关函数,滞后为 0 到 m−1。过程的自相关函数根据随机过程的方差以及过程随时间变化的速度来描述随机过程的特征。
图 1.4 不相关的离散时间过程。
在实践中,不可能使用 expectations 来评估协方差矩阵,如 in。期望在实践中无法评估——它们需要无限量的数据,而这些数据永远不可用,此外,数据必须在观察间隔内保持平稳,这种情况很少见。在实践中,我们根据对过程的有限长度 N 的观察来评估 的估计值,方法是将集成平均值(期望)替换为 N 个可用数据点上的有限时间平均值,如下所示:
如果 用于 评估 ,则过程只需在观测长度上保持平稳。因此,通过使用 给出的协方差估计值,我们可以跟踪过程的真实协方差矩阵随时间的缓慢变化,前提是过程中的变化在观察区间 N 上很小。Haykin 中给出了更多属性和讨论协方差矩阵.
有趣的是,可以以另一种方式形成。设 为第 i列是其向量样本的矩阵。then 也给出为
的一些特性 :
1. 是(埃尔米特)对称的,即 ,其中 表示复共轭。
2. 如果 是对角线,则 的元素不相关。如果 的非对角线元素的大小相对于主对角线上的元素的大小显着,则称该过程高度相关。
3. 是正半定的。这意味着所有特征值都大于或等于零。我们稍后将讨论正确定性和正半确定性。
4. 如果平稳或 WSS 随机过程具有高斯概率分布,则向量均值和协方差矩阵足以完全指定过程的统计特征。
1.3 奇异值分解 (SVD)
在本次讲座中,我们将学习线性代数最基本和最重要的矩阵分解之一:SVD。它与特征分解 (ED) 有一些相似之处,但更通用。通常,ED 仅在对称方阵上感兴趣,但 SVD 可以应用于任何矩阵。SVD 为我们提供了有关矩阵的秩、列间距和行间距的重要信息,并导致非常有用的最小二乘问题的解决方案和解释。我们还讨论了矩阵投影仪的概念,以及它们与 SVD 的关系。
1.3.1 Orthogonalization
在讨论 SVD 之前,我们首先看一下 orthogonalization。对于具有线性独立特征值的方阵,我们有
其中是矩阵,这些列是 的特征向量,并且是一个对角矩阵,其特征值沿对角线为 。
1.3.1.1 直觉到正交化
我们可以将方程 (1.3.1) 视为从特征值的基到基的线性变换,并且对角化很有用,因为它可以很容易地计算矩阵的指数;
1.32 SVD 的存在证明
考虑两个向量,其中s.t.where .这样的向量和可以存在的事实遵循矩阵 2-范数的定义。我们定义正交矩阵,以便 并形成它们的第一列,如下所示:
也就是说,由一组非唯一的正交列组成,这些列与自身和 to 相互正交;类似地,对于 .
然后,我们将矩阵定义为
矩阵 A1 的结构如下:
其中 上面 (2,1) 块中的 0 源于 ,因为是正交的。
现在,我们将 (1.3.5) 通过向量 并取 2norms:
这是因为最右侧的项只是中间项的向量积的第一个元素。但是,正如我们所看到的,矩阵 p-范数遵循以下性质:
因此,使用 (1.3.6) 和 (1.3.7),我们有
请注意,除以这个数量,我们得到
但是,我们定义了。因此,以下内容必须成立:
其中右边的相等性紧随其后,因为矩阵 2-范数对于正交矩阵的乘前和乘后矩阵是不变的。通过比较 (1.3.9) 和 (1.310) 中,我们得到结果 .
将此结果代入 (1.3.5),我们现在有
整个过程仅使用组件重复,直到变为对角线。
考虑 SVD 的替代证明是有指导意义的。以下内容很有用,因为它是一个建设性的证明,它向我们展示了如何形成 SVD 的组成部分。
定理 2:设 为 秩 r 矩阵。然后存在正交矩阵,并且
哪里
证明:
考虑平方对称正半定矩阵。设大于零的特征值为然后,根据我们对特征分解的了解,存在一个正交矩阵,使得
Where 我们现在划分为 ,其中。然后 (1.3.14) 的形式为
然后通过将(1.3.15) 我们有
从 (1.3.16),我们可以写
然后,我们从 (1.3.18) 作为
然后从 (1.3.18) 我们有,因此
从 (1.3.17) 我们也有
现在我们选择一个矩阵,以便其中 , 是正交的。然后从 (1.3.19) 并且因为我们有
因此
结合 (1.3.20)、(21) 和 (1.3.23),我们有
可以使用矩阵上的特征分解而不是 on 来重复证明。在这种情况下,正交矩阵 和 的角色是互换的。
上述证明很有用,原因如下:
它简短而优雅。
我们还可以确定 SVD 的哪一部分不是唯一的。在这里,我们假设 没有重复的非零特征值。因为对应于零特征值的 的特征向量在存在重复的零特征值时不是唯一的。当 m < n + 1 (即 A 足够短)或这些条件的为空或这些条件的组合时,会发生这种情况。
根据其构造,只要矩阵由两个或多个列组成,矩阵就不是唯一的。发生这种情况.
它作为一个练习来表明,当使用矩阵开发证明时,可以对 nd 的唯一性得出类似的结论 .
1.3.3 对 SVD 进行分区
这里我们假设 具有非零奇异值(并且 p − r 为零奇异值)。稍后,我们看到了这一点。为了便于表示,我们将奇异值排列为:
在本课程的其余部分,我们将使用在 and 中分区的 SVD。我们可以将 A 的 SVD 写 成
其中,和 is分区为
的列是与 r 非零奇异值关联的左奇异向量,列是与零奇异值关联的左奇异向量。以类似的方式进行分区:
1.3.4 SVD 的性质和解释
上面的分区揭示了 SVD 的许多有趣特性:
1.3.4.1 等级 (A) = r
使用 (1.3.25),我们可以写成
在哪里。从 (1.3.28) 很明显,ith,i= 1...r 列 是 的列的线性组合,其系数由的第 i 列 给出。但是由于 in 中有 r ≤ n 列,因此 in 中只能有 r 个线性独立的列。从等级的定义可以得出)。
这一点类似于前面考虑的情况,其中我们看到 rank 等于非零特征值的数量,此时 是一个方形对称矩阵。但是,在这种情况下,结果适用于任何矩阵。这是 SVD 如何成为特征分解的泛化的另一个示例。
确定 明显大于零 的排名,以及 何时正好为零 很容易。但在实践中,由于有限精度算术和模糊数据,可能非常小,并且 可能不完全为零。因此,在实践中,确定等级并不是那么容易。一种常见的方法是声明 rank,其中 是特定于所考虑的问题的小数字。
1.3.4.2 N(A) = R(V2)
调用 nullspace。因此,我们调查集合,以便 Let, where.通过替换 (1.3.25) 因为,通过注意到那个和那个,我们得到了
因此,span() 至少是 的子空间。但是,如果 x 包含 的任何组件,则 (1.3.29) 不会为零。但是由于 是完整的基 in,我们看到 单独是 的空空间的基 .
1.3.4.3 R(A) = R(U1)
回想一下,range 的定义是 From (1.3.25),
哪里
从上面我们得到
我们看到,随着整个过程的移动,数量在整个过程中移动。因此,此上下文中的量由 的所有线性组合组成。因此,的正交基是 .
1.3.4.4 R(AT ) = R(V1)
回想一下,使用 1.3.4.3 节中参数的转置版本可以看到 Our property 的所有线性组合的集合。因此,是 的行的正交基 .
1.3.4.5 R(A )= R(U2)
来自 Sect. 1.3.4.3 中,我们看到了。由于 from (1.3.25),则是 因此结果的正交补码的基础。
1.3.4.6||A||2=σ1=最大 σ
从 2-范数的定义和 1.3.6 节的椭球体示例中很容易看出这一点。
1.3.4.7 A 的倒数
如果给出方阵的 svd,则很容易找到逆矩阵。当然,我们必须假设 是满秩,(这意味着)逆存在。的倒数由 svd 给出,使用熟悉的规则,如
的评估很容易,因为它是正方形和对角线。请注意,此处理表明 的奇异值是 .
1.3.4.8 SVD 对角化任何方程组
考虑任意矩阵的方程组。使用 SVD 的
现在让我们用基 U 来表示 b,用基 V 来表示 x,就像在第 3.6 节中一样。因此,我们 have
和
将上述内容代入 (1.3.34),方程组变为
这表明,只要我们选择正确的底数,任何方程组都可以变成对角线。此属性表示 SVD 的功能;它允许我们将任意代数结构转换为最简单的形式。
如果或 if 秩,则只有在以下情况下才能满足方程组。要看到这一点,above 在非零奇异值的对角线块下方有一个零块。因此,左侧的下部元素 (1.3.37) 都为零。然后,如果 (1.3.37) 是要满足的,则 c2 也必须为零。这意味着 that 或 .
此外,如果,或者如果,那么,如果 xo 是 的解也是 的解,其中 This 遵循,因为正如我们所看到的,是 的基础;因此,分量 , 和 .
1.3.4.9 SVD 的“旋转”解释
从 SVD 关系 中,我们有
请注意,由于 是 对角线,因此右侧的矩阵具有正交列,其 2-范数等于相应的奇异值。因此,我们可以将矩阵解释 为正交矩阵,该矩阵旋转其行 ,以便结果是具有正交列的矩阵。同样,我们有
右侧的矩阵具有 2-norm 等于相应奇异值的正交行。因此,正交矩阵对 的列进行运算(旋转) 以生成具有正交行的矩阵。
在 m > n, ( is tall) 的情况下,矩阵也是 tall,在底部的 m-n 行中为零。然后,只有 的前 n 列与 (1.3.38) 相关,只有 的前 n 行与 (1.3.39) 相关。当 m < n 时,可以进行相应的转置语句替换.
1.3.5SVD 与 ED 的关系
很明显,特征分解和奇异值分解具有许多共同的属性。为了能够在仲裁矩阵上执行对角线分解,我们付出的代价是我们需要两个正交矩阵,而不是像方形对称矩阵那样只有一个。在本节中,我们将探讨 ED 和 SVD 之间的进一步关系。
使用 (1.3.25),我们可以写
因此,很明显, 矩阵的特征向量是 的右奇异向量,而 squared 的奇异值 是相应的非零特征值。请注意,如果 是短 (m < n) 且全秩,则矩阵 将包含 未作为 A 的奇异值包含的其他零特征值。这是因为 当 A 为满秩时,矩阵的秩为 m,而 的大小为 n × n。
正如 Golub 和 van Loan 中所讨论的,SVD 在数值上比 ED 更稳定。然而,在 n >> m 的情况下,SVD 的矩阵 V 变得很大,这意味着相对于 .
此外,我们还可以使用表单说,
这表明 的特征向量是 的左奇异向量,而 的平方 的奇异值 是 的非零特征值。请注意,在这种情况下,如果 是 tall 且 full rank,则矩阵将包含 m n 个额外的零特征值,这些特征值不包括在 .
现在,我们比较 ED 和 SVD 的基本定义关系:
对于 ED,如果 是对称的,我们有:
其中是特征向量的矩阵,是特征值的对角矩阵。逐列编写此关系,我们有熟悉的特征向量/特征值关系:
对于 SVD,我们有
在哪里。此外,由于,我们拥有
因此,通过比较 (1.3.42)、(1.3.43) 和 (1.3.44),我们看到奇异向量和奇异值服从一个关系,该关系类似于定义特征向量和特征值的关系。然而,我们注意到,在 SVD 情况下,基本关系用右奇异值来表示左奇异值,反之亦然,而特征向量则用自身来表示。
练习:在方形对称矩阵上比较 ED 和 SVD,当 i)是正定的,并且 ii) 当 具有一些正特征值和一些负特征值时。
1.3.6 SVD 的椭球体解释
的奇异值,其中是超椭球体 E 的半轴长度,由下式给出:
也就是说,E 是映射到 x 的点的集合,具有所有可能的值,如图 1.5 所示。为了理解这一点,让我们看看对应的 y 的集合。我们采取
让我们改变 and 的基数。定义
那么 (45) 变为
图 1.5:SVD 的椭球体解释。
点的轨迹定义一个椭圆。椭圆的主轴沿左侧奇异向量对齐,长度等于相应的奇异值。
我们注意到这一点。因此,我们的问题被转化为观察 与该集合相对应的集合。该集合 可以通过评估 (1.3.47):
我们看到 (1.3.+48) 定义的集合确实是基 中椭圆的规范形式。因此,椭圆的主轴沿 的列对齐,其长度等于相应的奇异值 。这种对 SVD 的解释在以后我们研究条件编号时很有用.
1.3.7 一个有趣的定理
首先,我们意识到 A 的 SVD 提供了一个 “和外积” 的表示形式:
给定 等级 r,那么 在 2-norm 中排名最接近的矩阵是什么?这个 2 范数距离是多少?以下定理回答了这个问题:
定理 3: 定义
然后
换句话说,这表示最接近 2 范数意义 上的秩矩阵是由 (1.3.49) 与最小奇异值相关联。
证明:既然 它遵循那个等级,而且那个
其中第一行来自矩阵的 2 范数对正交矩阵乘前和乘后不变的事实。此外,可以表明,对于任何秩矩阵 ,
比较 (1.3.51)和(1.3.52),我们看到最接近的秩 k 矩阵由下式给出(1.3.50)。当我们希望用另一个较低秩的矩阵来近似一个矩阵时,这个结果非常有用。例如,让我们看看 1.1 中讨论的 Karhunen-Loeve 扩展。对于 随机过程的样本,我们表示为
其中V 的列是协方差矩阵的特征向量。我们在第1 节中看到。2.7 中,我们可以通过将 的元素设置为零来表示相对较少的 coefficients。这个想法是,由此产生的失真将具有最小的能量。
现在,借助这个定理,可以从不同的角度看待这一事实。假设我们保留与最大 r 特征值关联的给定元素。Let 和Then
其中 Since 是正定的、平方的和对称的,它的特征分解和奇异值分解是相同的;因此,从这个定理 and(1.3.54) 中,我们知道通过截断 K-L 系数形成的协方差矩阵是最接近 2 范数意义上的真实协方差矩阵的 rank-r 矩阵.
1.4 Quadratic 形式
1.4.1 Quadratic 形式理论
我们通过考虑正定方阵是正定的思想来引入二次形式,当且仅当对于任何
当 且仅当 for any 我们有
只有其对称部分与二次形式相关。这可以看作如下:的对称部分定义为,而 的不对称部分定义为 。 然后。可以通过直接乘法来验证二次形式也可以用以下形式表示
因为 ,对应于不对称部分的 (i, j) 项恰好抵消了对应于第 (j i) 项的项 此外,对应于 i = j 的项对于不对称部分为零 因此对应于不对称部分 S 的二次方部分为零。因此,在考虑二次方时,只考虑矩阵的对称部分就足够了 正定矩阵上的二次方形式在最小二乘和自适应滤波应用中非常频繁地使用.
定理 1:当且仅当 的对称部分的所有特征值均为正时,矩阵是正定矩阵.
证明:由于只有 的对称部分是相关的,因此二次形式 on可以表示为对 Let us define 的对称部分进行了特征分解,因此我们有
因此(1.4.4) 对于任意 x当且仅当大于零。 从(1.4.4)中,很容易验证方程,其中 k 是一个常数,定义一个多维椭圆,其中是第 i 个主轴的长度。 由于 其中是正交的,z 是 xa 上的旋转变换,因此方程是 (4) 的旋转版本。因此,也是一个带有主轴的椭圆,由下式给出。在这种情况下, 椭圆的第 i 个主轴沿的第 i 个特征向量排列。
二次形式的正定性是标量 a 的矩阵模拟,在标量表达式中为正。标量方程是一个抛物线,如果 a 为正,则朝上。同样, 是一个多维抛物线,如果为正定,则向所有方向向上.
示例 我们现在讨论一个例子来说明上面的讨论。 的三维图 如图 1.6 所示,由下式给出
相应的等值线图绘制在图 1.7 中。请注意,如上所述,这条曲线在平面上的横截面是椭圆形的,可以很容易地验证 的特征值为 3,1 和相应的特征向量,而椭圆的主轴的长度是 和 1。从图中可以看出,这些主轴确实是所示的长度,并根据需要沿特征向量的方向排列.
我们将椭圆写入以下格式
图1.6 二次型三维图.
图 1.7 等值线图 最里面的等值线对应于 k=1。
和以前一样。 从图 1.7 中可以看出,since 是正数,在所有保持不变的情况下,其定义的曲线是一条向上的抛物线。为了观察y vs 的行为,在这种情况下,我们使用纵轴 y和适当的特征向量方向,而不是通常的 x 轴方向)。
定理 2 当且仅当 为正定或正半定时,对称矩阵才能分解为以下形式.
证明(必要条件):让我们定义为。 然后
相反(充分条件),在不损失一般性的情况下,我们对 as 的对称部分进行特征分解。既然是正定的,通过假设我们可以写让我们定义其中是一个大小合适的任意正交矩阵。 然后 .
请注意,在这种情况下,如果具有非空 null 空格,则只能为正半定。否则,它是严格的正定.
1.4.2 高斯多变量概率密度函数
在这里,我们非常简要地介绍了这个主题,以便我们可以将此材料用作 Cholesky 分解应用的示例,以及本课程稍后将遵循的最小二乘分析:本主题是二次形式的一个很好的应用:更多详细信息在几本书中提供.
首先,我们考虑高斯概率分布函数 pdf 的单变量情况。具有均值和方差的高斯分布随机变量 x 的 pdf p(x)给定一个
这是我们熟悉的钟形曲线 它完全由两个参数指定:决定峰值位置的平均值,以及决定曲线宽度或散布的方差.
我们现在考虑更有趣的多维情况:考虑一个具有均值和协方差的高斯分布向量。描述 的多变量 pdf 是
我们可以看到,当变量数量变为 1 时,多变量情况坍缩为单变量情况。vs 图 如 1.8 所示,对于 和 ,定义为
因为 (1.4.9) 是二次型,其中 k 为常数的方程满足的点集是一个椭圆,因此该椭圆定义了
图 1.8 高斯概率密度函数.
相等概率密度的等值线 该椭圆的内部定义了一个区域,观察值将以 的指定概率落入该区域,该概率取决于 。 该概率水平为
其中是椭圆的内部 另一种说法:椭圆是概率分布 (9) 控制的任何观测值将以指定的概率水平下降的区域。 随着 增加,椭圆会变大并增加这些省略号在概率级别称为联合置信区 .
协方差矩阵控制椭圆的形状。因为在这种情况下,二次形式涉及 ,所以第 i 个主轴的长度不是二次形式在 中时的长度。因此,当特征值增加时,对于给定的 k 值,联合置信区的大小会增加(即分布的散布增加)。现在
图 1.9 具有条件更差的协方差矩阵的高斯 pdf.
假设我们以这样一种方式让 Poorly 条件 (主要对角线元素) 保持不变。然后,最大与最小主轴的比率变大,椭圆变长。在这种情况下,pdf 呈现出更多如图 1.9 所示的形状,它显示了一个多变量高斯 pdf,对于条件相对较差的
在这里,由于描述联合置信区的椭圆被拉长,我们看到,如果其中一个变量是已知的,另一个变量的分布将更加集中在第一个变量的值周围;即,对一个变量的了解告诉我们相对更多关于另一个变量的信息 这意味着变量彼此之间高度相关 但是我们之前已经看到,如果向量随机过程中的变量高度相关,那么协方差矩阵的非对角线元素会变得更大,从而导致它们的特征值变得更加不同;即,协方差矩阵的条件数变得更糟。正是这个较差的条件数字导致图 1.9 中的椭圆变长.
通过这个讨论,我们现在已经绕了一圈,一个高度相关的系统在其协方差矩阵中具有大量的 o ff 对角线元素,这导致了条件较差的协方差矩阵 但是具有条件较差的协方差矩阵的高斯分布过程具有拉长的联合置信区反过来,拉长的联合置信区意味着系统高度相关,这让我们回到了起点.
了解这些关系是信号处理严谨性的关键要素.
1.4.3 瑞利商数
Rayleigh 商是一种简单的数学结构,有很多有趣的用途Rayleigh 商定义为
很容易验证,如果 x 是 的第 i 个特征向量 v(不一定归一化为单位范数),那么 :
事实上,它很容易通过区分to 来表示,即 .
沿着这条推理思路进一步,让我们将子空间定义为其中是第 i 个特征向量,其中是对称的 然后 Courant Fischer 极小极大定理的一个变体说
问题 通过微分很容易表明 for最小化。Golub 和 Van Loan 的微扰理论表明,如果在 (1.4.13) 是特征向量的良好近似值,则是相应特征值的良好近似值,反之亦然。从单位 2-norm 的初始估计开始,建议使用 (1.4.13),它给出了特征向量的改进估计值。如何找到特征值?
这种技术称为瑞利商迭代,用于计算特征值和特征向量。事实上,这种迭代非常有效;可以证明它具有三次收敛
10 这仅在 A 和 B 是平方可逆的情况下成立。文中在何处?请标注
2. 最小二乘问题的解
在本节中,我们讨论了参数的线性最小二乘估计的概念 最小二乘 (LS) 分析是自适应系统的基本概念 线性预测/信号编码 系统识别和许多其他应用 最小二乘问题的解决方案从代数的角度来看非常有趣,并且还具有几个有趣的统计特性.
在本节中,我们研究了最小二乘法的几种应用,然后继续开发用于解决 LS 问题的所谓正态方程。然后,我们讨论了 LS 解的几个统计特性,并研究了它在白噪声和有色噪声下的性能。
在以后的部分中,我们将研究更有效地解决 LS 问题的方法,并处理所涉及的矩阵秩不足的情况.
2.1 线性最小二乘估计
2.1.1 示例:自回归建模
自回归 (AR) 过程是一个随机过程,当被白噪声激励时,它是全极点滤波器的输出。这个术语的原因在后面会很明显 在这个例子中,我们处理离散时间 一个全极点滤波器的传递函数由表达式
(2.1.1)
w 这里z是滤波器的极点,h是 z 中相应多项式的系数,设and 分别表示输入和输出序列的 z 变换。 如果(对应于白噪声输入),则
(2.1.2)
或者对于此特定情况,
因此 (2.12) 可以表示为
(2.1.3)
我们现在希望将此表达式转换为时域。(2.1, 3) 的每个时域信号都由相应的逆 z 变换关系给出,为
(2.1.4)
(2.1.5)
z-transform quantity对应的输入序列为
(2.1.6)
w这里 wn是具有幂的白噪声序列。(2.13) 的左侧是 z 变换的乘积。因此,(2.13) 左侧的时域表示是相应时域表示的卷积。 因此,使用 (2.13)-(2.16),我们得到
(2.1.7)
或R
(2.1.8)
对索引 i 的 m 个不同值的方程重复此操作
(2.1.9)
其中 matrix-vector 量的定义在之前的讨论中很明显。从 (2.18) 中,我们看到,如果is 适当小,则输出 y 的现值是根据过去值的线性组合预测的。因此yp 是预测值的向量。(因此下标:p“预测”)。如果很小,则预测误差很小,这是由于底层全极系统的 “惯性” 造成的。在这种情况下,全极点系统具有高度谐振,具有相对较高的 Q 因子,当由白噪声输入驱动时,输出过程变得高度可预测。
对应于 (2.1, 9) 的数学模型有时称为 回归模型 。在变量中,y 被 “回归” 到自身,因此被称为 “autoregressive”。
因此,选择 (2.115) 中的 h 是有意义的,这样预测项 Yh 就尽可能接近2 范数意义上的 yp。因此,和以前一样,我们选择h来满足
(2.1.10)
请注意,如果参数 h 已知,则自回归过程是完全表征的.
2.1.2 Least 方解决方案
我们将对应于 (2.1, 9) 的回归模型定义为
(2.1.11)
并且我们希望确定解决
(2.1.12)
w 这里,矩阵A被假定为满秩。
在这个一般上下文中,我们注意到 b 是一个观测向量,它对应于 Ax 形式的线性模型,受到噪声贡献 n 的污染。矩阵A是一个常数。在确定时,我们发现 x 的值为 2 范数意义上的模型提供了最佳观测值。
我们现在讨论有关 LS 问题的几个相关要点:
系统 (2.112) 被超定,因此在 Ax = b 正好的一般情况下不存在解.
在 (2.110) 中范数的所有常用 p 值中,p = 2 是唯一一个范数对 x 的所有值都是可微分的。因此,对于 p 的任何其他值,最优解都无法通过不同的iation 获得。
请注意,对于 Q 正交,我们有(仅p = 2 时)
(2.1.13)
这个事实在以后被用来利用。
我们将残差的最小平方和定义为。
如果,则没有唯一which 最小化。 但是,通过仅考虑具有最小范数的集合元素,可以使解是唯一的。
我们希望通过求解 (2.1, 1, 2) 来估计参数 x。我们选择求解的方法 (2.1, 1, 2) 是区分关于 x 的量,并将结果设置为零。因此,本节的其余部分专门讨论这种差异。结果是 (2.1, 1, 2) 的解的封闭形式表达式
表达式可以写成
(2.1.14)
解决方案是满足
(2.1.15)
将上面方括号中的每个术语分别定义为 。.
(2.1.16)
其中我们已经注意到自 b 以来的导数独立于x。
我们看到 (2.1, 16) 的每一项都是一个标量。为了对向量 x 进行微分 (2.116),我们将 (2.116) 的每个项对 x 的每个元素进行微分,然后将所有结果组合回一个向量我们现在讨论 (2.116) 的每个项的微分:
2.1.2.1 t2(x) 和 t3(x) 相对于 x 的 Diff触发
让我们定义一个量,这意味着 c 的分量 ck 是k =1,..., n,其中 是 A 的第 k 列的转置。
因此, . 因此
(2.1.17)
将这些结果组合成一个列向量,我们得到
(2.1.18)
由于 (2.116) 的项 3 是项 2 的转置,并且两者都是标量,因此项相等。因此
(2.1.19)
2.1.2.2 t4(x) 相对于 x 的微分
为了符号的方便,让我们定义矩阵。因此,二次形式 t4(x) 可以表示为
(2.1.20)
当对特定元素 xk 进行上述区分时,我们只需要考虑索引 i 或 j 等于 kTherefore 时的项:
(2.1.21)
其中 (2.1, 2, 1) 的第一项对应于在值 k 处保持 i常数。必须注意只包含一次对应于 i=j=k 的项,因此它在前两项中被排除并单独添加。 方程 (2.1, 21) 的计算结果为
其中 表示相应向量的第 k 个元素 在上面我们使用了 R 是对称的事实,因此 。将 k = 1, ... , n 的所有这些分量一起组装成一个列向量,我们得到
(2.1.22)
将 (2.118)、(2.119) 和 (2.122) 代入 (2.116) 我们得到重要的所需结果:
(2.1.23)
解 (2.1, 2, 3) 的 x 值是对应于 (2.1, 1, 2) 的最小二乘解。 方程 (2.1, 2, 3) 称为正态方程。下一节将讨论此术语的原因,如下所示:
2.1.3 正态方程的解释
方程 (2.1, 2, 3) 可以写成以下形式
或
(2.1.24)
哪里
(2.1.25)
is 和 b 之间的最小二乘误差向量必须与 LS 解的 R(A) 正交,因此,名称为“正态方程”。这一事实为最小二乘估计提供了重要的解释,我们现在以 3×2 的情况来说明。方程 (2.1, 1, 1) 可以表示为
我们从 (2.1.24) 中可以看到,该点位于从 b 到 R(A) 的垂线的脚下。解是 A 的列的线性组合的权重,它等于 “英尺向量”.
这种解释可以扩展如下。从中我们看到
(2.1.26)
因此, R(A) 中的点由下式给出
其中P 是 R(A) 上的投影仪。 因此,我们从另一个角度看到,最小二乘解是将 b(观察值)投影到 R(A) 上的结果。
从 (2.111) 可以看出,在无噪声的情况下,向量 b 等于向量 。应该位于从 b 到 R(A) 的垂线脚下这一事实在直觉上是合理的,因为 a 垂线是从 b 到 R(A) 的最短距离。毕竟,这就是方程 (2.112) 所表示的 LS 问题的目标.
在解释正态方程时,我们还希望解决另一点。将 (2.1.26) 代入 (2.1.25) 我们有
(2.1.27)
因此, 是 b 到 的投影。我们现在可以确定值 ,即 LS 残差的平方 2 范数:
(2.1.28)
与 R(A) 正交的事实至关重要。事实上,很容易证明选择 x 是最小二乘解的充分条件。在分析中通常是以这种方式确定的,而不是通过正交方程这个概念被称为正交性原理.
2.1.4 LS 估计的属性
在这里,我们再次考虑回归方程 (2.1, 1, 1)。为方便起见,现转载如下
(2.1.29)
现在,我们简要地阐明了 (2.1.29) 中符号的各个方面。我们使用数量x 来表示未知的参数向量,因此它被认为是我们希望估计其真实值的变量。该量是通过最小二乘过程专门获得的 x的估计值。沿同一行 (2.1.25) 是模型与观测值之间的特定值的误差另一方面,(2.1.29) 中的 n 是真实模型 () 与观测值之间的真实(未知)误差值 残差不等于 n,除非,这不太可能。
在本节中,我们将左侧视为由已知常数矩阵 A 生成的观测值的向量 b ,以及参数 x 的向量,其真实值为 观察值被噪声污染 n。因此,b 是由 n 的 pdf 描述的随机变量。但从 (2.1.26) 中我们看到这是 b 的线性变换;因此也是一个随机变量。我们现在研究它的特性。
为了讨论 LS 估计的有用和有趣的特性,我们做出以下假设:
A1:n 是具有不相关元素的零均值随机向量;即 .
A2:A 是一个常数矩阵,已知误差可以忽略不计。也就是说,A 中没有不确定性。
在 (1) 和 (2) 下,我们有 (2.1.26) 给出的 LS 估计的以下属性
2.1.4.1 XLS 是 Xo 真实值的无偏估计值
为了说明这一点,我们有 from (2.1.26)
(2.1.30)
但从回归方程 (2.1.29) 中,我们意识到观察到的数据 b 是由 x 的真实值生成的。因此,从 (2.1.29)
(2.1.31)
因此 E(x) 被给出为
(2.1.32)
这是因为 n 是假设 (1) 的零平均值。因此,x 的期望是它的真实值并且是无偏的.
2.1.4.2 xLS 的协方差矩阵
非零均值过程的协方差矩阵的定义为:
(2.1.33)
为此,我们将
(2.1.34)
将 (2.1.34) 和 (2.1.26) 代入 (2.13 3) 中,我们有
(2.1.35)
从假设 (2) 中,我们可以将期望运算符移动到 Therefore,
(2.1.36)
我们使用的结果是 噪声向量 n 和 (1) 中的噪声向量 n。
估计值的方差最好尽可能小 (2.1.36) 说它们有多小?我们看到,如果 很大,那么作为对角线元素的方差也很大。这是有道理的,因为如果 n 的元素方差很大,那么可以预期 的元素方差也会很大。但更重要的是,(2.1.36)还说,如果 在某种规范意义上是 “大”,那么 是 “小”,这是可取的。我们稍后会更详细地讨论这一点:我们还可以推断,如果 是秩缺陷,那么 是秩缺陷,并且 x 的每个分量的方差接近无穷大,这意味着结果毫无意义.
2.1.4.3xLS是蓝色的
根据 (2.1.26),我们看到这是一个线性估计,因为它是 b 的线性变换,其中变换矩阵是。从 2.1.6.1 中进一步看到这是公正的。通过以下定理,我们表明 是最好的线性无偏估计器 (BLUE)。
定理 1 考虑任何线性无偏估计,定义为
(2.1.37)
其中是估计器或变换矩阵。然后在 (1) 和 (2) 下是蓝色的。
证明:将 (2.1.29) 代入 (2.1.37) 我们有
(2.1.38)
因为 n 的均值为零 (1),
因此 ,为了不偏不倚,我们要求
(2.1.39)
我们现在可以将 (2.1.38) 写为
的协方差矩阵 为
(2.1.40)
其中我们在最后一行中使用了 (1).
我们现在考虑一个定义为估计矩阵 B 和最小二乘估计矩阵之差的矩阵 :
否 使用 (2.1.39) 我们形成矩阵乘积 :
(2.1.41)
我们注意到 的第 i 个对角线元素是第 i 行的平方 2 范数;因此,从 (2.141) 我们得到
(2.1.42)
我们注意到协方差矩阵的对角线元素是单个元素的方差。但是从 (2.140) 和 (2.1.36) 中我们可以看到 和 分别是 和 的协方差矩阵,因此 (2.142) 告诉我们 的元素的方差永远不会比 的好。因此,在线性无偏估计量类中,在假设 (1) 和 (2) 下,没有其他估计量的方差小于 L-S 估计值.
A3: 对于以下属性,我们进一步假设 n 是联合高斯分布的,均值为 0,协方差为 .
2.1.4.4 x LS 的概率密度函数
高斯分布随机变量的一个基本性质是,高斯分布量的任何线性变换也是高斯的 从 (2.1.26) 中,我们看到 是 b 的线性变换 ,根据假设它是高斯的 由于高斯 pdf 完全由分别由 (2.1, 3, 2) 和 (2.1.36) 的 pdf 表达式,则 高斯 pdf 由下式给出
(2.1.43)
我们看到,的椭圆联合置信区 是定义为
(2.1.44)
其中 k 是某个常数,它决定了观测值将落入其中的概率水平请注意,如果联合置信区在任何方向上变得拉长,则 的关联分量的方差会变大。让我们将 (2.1.44) 中的二次形式改写为
其中 和关联椭圆的第 i 个主轴的长度为 这意味着,如果某个特定的特征值很小,那么相应的轴的长度就很大,并且 z 在相应的特征向量 v 的方向上有很大的方差。如果 v 沿 的任何分量都有显著的分量,那么这些分量也具有很大的方差另一方面,如果所有特征值都很大,那么 z 的方差,因此在所有方向上都很低.
推广到多个维度,我们看到,如果 的所有分量 都具有较小的方差,那么 的所有特征值 都必须很大 因此,为了获得理想的方差,矩阵的属性必须经过良好的条件处理 这就是前面提到的“意义”,矩阵必须“大”才能使方差小。
从上面我们可以看到,一个小的特征值有能力使 large 的所有分量的方差 在下一个讲座中,我们将介绍伪逆,它可以减轻小特征值破坏所需方差属性的影响 .
让我们从不同的角度来研究这个概念我们回到回归方程
其中我们看到观测值 b 受到噪声n 的扰动,噪声 n 具有给定的噪声功率:如果 的特征值 相对较大,则 的奇异值 很大。那么 x 的变化以补偿 n 的变化,使其保持最小,这相对较小。另一方面,如果 A 的奇异值 相对较小,则需要 x 的较大变化 来补偿 由于噪声引起的 b 变化 估计 x 的方差是 x 的估计值 总体相对于所有可能的噪声样本的变异量 所以我们再次看到,如果所有奇异特征值都很大,那么x 很小,反之亦然。
我们在以下定理中总结了前面的讨论,该定理已经被证明是合理的。
定理 2 如果 的至少一个特征值 较小,并且关联的特征向量沿 x 轴具有显著分量,则最小二乘估计将具有较大的方差。
2.1.4.5 最大似然属性
在这种情况下,最小二乘估计是 为了显示这一特性,我们首先研究 n = Ax – b 的概率密度函数,对于更一般的情况给出,其中
(2.1.45)
条件 pdf p(b|x) 描述了观测值 b 中由于噪声而发生的变化,假设 A 是一个已知的常数,并且 x 被赋予了它的真实值.
生成观测值 b 的物理机制或过程采用根据 (2.1.45) 分布的随机噪声样本,并将它们与 Axo 值相加。 生成过程将值 Axo 或仅 xo 常量视为,但将 n 和 b 视为随机变量.
但是现在让我们考虑观察或接收 b 的过程 观察 b 现在是一个常数,因为它是一个测量量 Nowxo 是未知的,但需要估计 因此我们将相关的量 x 视为变量 这与生成过程的情况恰好相反.
为了根据观察 b 估计 xo 的值,我们使用了一个简单但非常优雅的技巧。我们选择最有可能引起观察 b 的 x 值 这是 x 的值,其中 (2.1.45) 给出的 pdf 对于变化 x 是最大的,其中 b 保持在观察到的值,而不是像生成器那样在 x 常数和 b 变量下保持恒定 x 的值 x 的值在其观测值上最大化 (2.1.45) b 常数被称为 x 的最大似然估计,它是一种非常强大的估计技术,并且在几篇文章中讨论了许多理想的特性.
请注意,从 (2.1.45) 中可以看出,如果那么使 概率 p(b|x) 作为 x 的函数是 xLS。 这是因为 xLS 根据定义是 x 的值,在这种情况下,它最小化了 (2.1.45) 中指数的二次形式。 它也是 p(b|(2.1.45) 中的 x) 是最大值因此,xLS 是 x 的最大似然估计 .
2.1.5 线性最小二乘估计和 Cramer Rao 下界
在本节中,我们讨论了 Cramer-Rao 下限 (CRLB) 与线性最小二乘估计之间的关系:我们首先讨论 CRLB 本身,然后继续讨论 CRLB 与白噪声和彩色噪声中的线性最小二乘估计之间的关系.
2.1.5.1 Cramer Rao 下限
在这里,我们假设观察到的数据 b 是从模型 (2.1.29) 生成的,对于噪声 n 是联合高斯零均值过程的特定情况 为了解决 CRLB,我们考虑一个矩阵 J 定义为
(2.1.46)
(2.1.47)
使用 Sect.2.1.4.1 和 2.1.4.2,很容易表明
(2.1.48)
由 (2.1.48) 定义的矩阵 J 称为费舍尔信息矩阵 现在考虑一个矩阵 U,它是参数估计的协方差矩阵,通过一些任意估计过程获得,即,其中 是由一些任意估计器获得的 x 的一些估计.
然后
(2.1.49)
其中 jii 表示 J 逆的第 (i,i) 个元素因为协方差矩阵的对角线元素是各个元素的方差,所以告诉我们由某个任意估计器获得的估计值的单个方差大于或等于 J-1 的相应对角线项。因此,CRLB 对方差的低限度设置了一个下限,而不管估计过程有多好.
2.1.5.2 白噪声的最小二乘估计和 CRLB
使用 (2.1.45),我们现在评估根据 (2.1.11) 的线性回归模型生成的数据的 CRLB,对于白噪声的特定情况,也就是说,如果我们观察服从模型 (2.1.11) 的数据,则 (2.1.26) 从 (2.1.48)、
(2.1.50)
比较 (2.1.50) 和 (2.1.36),我们看到 LS 估计的协方差矩阵满足CRLB 的相等性。因此,除了 (1) - (3) 下的 LS 估计器之外,没有其他估计器可以阻止。这是线性最小二乘估计的一个非常重要的特征:因此,我们将 LS 估计器称为最小方差无偏估计器 (MVUB)。
2.1.5.3 彩色噪声的最小二乘估计和 CRLB
在这种情况下,我们认为是一个任意协方差矩阵,即 。 通过代入 (2.1.45) 并进行评估,我们可以很容易地表明这种情况的 Fisher 信息矩阵 J 由下式给出
(2.1.51)
现在,对于有色噪声情况,我们开发了对应于 (2.1.36) 的 LS 估计值的协方差矩阵版本 假设我们使用正态方程 (2.1.23) 来生成该有色噪声情况的估计值 xLS 使用与第 10.6 节相同的分析,除了使用instead to 和以前一样,我们得到:
(2.1.52)
请注意,在这种情况下,估计值的协方差矩阵不等于 from (2.1.51)。在这种情况下,from (2.1.51) 表示 CRLB,这是 xLS 元素的最小可能方差,因为 (2.1.52) 不等于相应的 CRLB 表达式,所以当常常正态方程 (2.1.23) 用于有色噪声时,xLS元素的方差不是最小可能 因此,常常正态方程在有色噪声中不给出 MVUE.
然而,我们现在表明,如果已知,我们可以通过预先白化噪声来改善这种情况。设其中 G 是 Choleski 因子,然后将 (2.1.11) 的两边乘以 G-1,噪声被白化,得到
(2.1.53)
使用上述作为回归模型,并替换 (2.1.23) 中的 A 和 b,我们得到:
(2.1.54)
与该估计相对应的协方差矩阵如下我们可以写成
(2.1.55)
代入 (2.1.56) 和 (2.1.54) 进入 (2.1.33) 我们得到
(2.1.56)
请注意,在彩色噪声情况下,当噪声被预先白化时(如 (2.1.53) 中),生成的矩阵 cov(xLS) 等效于 (2.1.51) 中的 J-1,这是 CRLB 的相应形式;即,现在满足边界的相等性,前提是 noise 是预白的.
因此,在存在具有已知协方差矩阵的彩色噪声的情况下,在应用线性最小二乘估计程序之前对噪声进行预白化也会导致 MVUE 为 x我们已经看到,当噪声没有预先白化时,情况并非如此.
2.2 求解最小二乘问题的广义“伪逆”方法
在本次讲座中,我们讨论了使用矩阵的伪逆矩阵解决最小二乘问题的方法:我们首先开发其结构,然后查看其属性。
2.2.1 使用 SVD 的最小二乘法
之前我们已经看到 LS 问题可能被提出为
其中观察 值是从回归模型生成的:对于 满秩的情况,我们看到求解的解由正态方程给出
如果矩阵是rankdeficient,则不存在正态方程的唯一解。有无限的解决方案可以最小化 但是, 如果我们在一组满足 中选择 该值,则我们可以生成一个独特的解决方案,该值 本身具有最小范数。因此,whenisrankdeficient是两个 2 范数最小化过程的结果。第一个确定一个集合,其中 which最小化,第二个确定elementofforwhich是最小值。
在这方面,我们开发了矩阵的伪逆矩阵。伪逆给出的解决方案是这两个 2 范数最小化程序的解决方案。 当矩阵为满秩或秩不足时,它可用于求解最小二乘问题。下面的过程揭示了最小二乘法分析的一些非常有趣的方面,我们稍后将探讨这些方面。
我们得到 和 。 如果 的 svd 为 ,那么我们将 定义为 定义的伪逆
矩阵的关联方式如下。如果
then
其中 and 以适当的方式填充零以保持维度一致性。
定理 1:当秩不足时,唯一最小化的解 ,即最小值,由下式给出
这里的 w 由方程 2.2.3 定义。此外,我们还
证明:对于我们拥有的
W在这里
一个nd
一个nd
请注意,我们可以用 2.2.7 的形式写出量,因为2-范数对正交变换 是不变的,而插入在 和 之间的量是相同的 .
从 2.2.8 中,我们可以立即得出以下几个结论: :
1. 由于 2.2.8 中矩阵右列中的零块,我们看到解独立于 Thereforeis 任意.
2. 由于 2.2.8 左侧的参数 是一个向量,因此可以表示为
因此,2.2.8 通过 选择 satisfy 来最小化
请注意,这个事实是显而易见的,而不必诉诸繁琐的微分,这是因为 svd 揭示了许多关于潜在问题的结构.
3. 从方程 2.2.9 中,我们有 。因此,
显然 是最小值 .
4. 结合我们对 和 的定义,我们有
这可以写成
或
这是要展示的。此外,我们可以从它的下半部分说
请注意,即使 is singular 也被定义.
前面的分析揭示了奇异值分解的相关优点 svd 立即揭示了矩阵结构的大量信息,因此允许相对简单地开发伪逆解例如,在最小二乘分析中使用 svd 时,我们可以看到在秩不足的情况下,我们 可以在不挂起 C的情况下将任何 vector 添加到 to。 此外,很容易确定残差向量位于空间 .
2.2.2 伪逆的解释
2.2.2.1 几何解释
现在让我们再看一下最小二乘的几何学它显示了一个简单的 LS 问题 我们再次看到, 这是对应于投影 到 事实上代入到表达式中的解,我们得到
但是对于我们从之前关于线性最小二乘法的讨论中了解到的特定情况,
投影仪 在哪里 。比较 2.2.18 和 2.2.19,并注意到 投影仪是独一无二的
因此,矩阵是投影仪.
这也可以以不同的方式看待 ,如下所示:使用我们拥有的定义
您关于 projectorsweknow 的讨论的恒等式在哪里 a nd F rom o 也是projectoron to whichhisthesame作为 .
我们还注意到,对于这种情况,矩阵是 .
2.2.2.2 伪逆解与正态方程的关系
假设,正则方程给我们
但伪逆函数给出:
在满秩情况下,这两个量必须相等 我们确实可以证明这是情况,如下所示 我们让
是 的 ED,我们让 SVD 定义为
利用这些关系,我们有
根据需要,其中最后一行从因此,对于满秩情况,以类似的方式,我们也可以表明对于情况.
2.2.2.3 伪逆作为广义线性系统求解器
如果我们 愿意接受最小二乘解,当线性方程组的常解不存在时(例如,当系统超定时),并且如果我们 能接受唯一解的定义是具有最小 2 范数的解,那么当系统 超过时,无论 是满秩还是秩不足,都会求解系统 确定的平方或下确定。
广义逆 (注意维度是彼此的转置) 必须满足以下 4 个 Moore-Penrose 条件:
很容易证明,由方程 2.2.3 定义的确实满足这些条件.
四个Moore-Penrose 条件等效于矩阵,并且分别被投影到列空间 (for ) 和行空间 (for ) 上我们大致说明如下:回想一下,一个projector matrix必须具有第 4 节中概述的三个特定属性。从上面的条件 i) 中,我们有 which 意味着根据需要跨越 的列,这是投影仪的必需属性之一。条件iii) 和iv)直接导致投影机的对称性 幂等性源自多重前或后多重 i) 或 ii) 通过或酌情获得 .
3. 主成分分析
3.1 介绍性示例
为了给本文奠定基础,我们将从一个小例子开始,其中主成分分析 (PCA) 可能很有用。收集了由同一葡萄(赤霞珠)生产的 44 个样品的红葡萄酒。其中 6 例来自阿根廷,15 例来自智利,12 例来自澳大利亚,11 例来自南非。使用 Foss WineScan 仪器测量葡萄酒的 14 个特征参数,例如乙醇含量、pH 值等(表 3.1).
表 3.1 葡萄酒样品上测定的化学参数(数据来自http://www.models.life.ku.dk/Wine_GCMS_FTIR)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
因此,获得了一个由 44 个样本和 14 个变量组成的数据集。实际测量值可以排列在大小为 44 × 14 的表格或矩阵中。该表的一部分如图 3.1 所示。
图 3.1 葡萄酒数据集的子集。
对于 44 个样本和 14 个列,要大致了解数据中可用的信息类型相当复杂。一个好的起点是绘制单个变量或样本。图 3.2 显示了其中三个变量。可以看出,澳大利亚和南非样品中的总酸和甲醇含量往往较高,而乙醇含量的区域差异则不太明显。
图 3.2 根据区域着色的三个变量。
尽管图 3.2 可能表明乙醇中几乎没有相关的区域信息,但过分依赖单变量分析是危险的。在单变量分析中,与其他变量的任何协变都被明确忽略,这可能会导致重要特征被忽略。例如,绘制乙醇与甘油的图(见图 3.3)显示了两者之间有趣的相关性。从单个变量的图中推断出来是很困难的。如果甘油和乙醇完全相关,那么实际上可以简单地使用例如两者的平均值或和作为一个新的变量来代替两个原始变量。不会丢失任何信息,因为总是可以从平均值到两个原始变量。
图 3.3 乙醇与甘油的曲线。
这种使用原始变量的适当线性组合的概念在 PCA 中是必不可少的,并且在这里以更详细和略微不寻常的方式进行了解释。新变量,例如,两个原始变量的平均值,可以定义为所有 14 个变量的加权平均值;只有其他变量的权重为零。这 14 个权重如图 3.4 所示。乙醇和甘油的权重不是像普通平均值那样为 0.5,而是选择 0.7,以使权重的整个 14 个向量缩放为一个单位向量。当原始变量乙醇和甘油的长度为 1(单位长度)时,将它们的线性组合也设置为长度 1 是很方便的。然后,这将定义组合变量上的单位。为了实现这一点,必须取 0.7(准确地说)乙醇和 0.7 甘油,如图 3.5 所示的简单毕达哥拉斯几何。这也延续到两个以上的变量。
图 3.4 定义仅包含乙醇和甘油信息的变量的权重。
图 3.5 单位向量的概念。
使用单位权重向量具有某些优势。最重要的一点是单位向量保留了变化的大小。想象一下有 10 个变量,而不是两个变量被平均。为简单起见,假设所有 10 都具有值 5。
无论平均值是根据 2 个变量还是 10 个变量计算的,平均值都是 5 个。但是,使用单位向量将提供显示变化的变量数量的度量。事实上,如果原始变量都相关,则原始变量和这个新计算的变量的方差将是相同的。因此,使用单位向量可以保留数据中的变化,这是一个有吸引力的属性。原因之一是它允许在原始变量(比如甘油-乙醇)和新变量的空间之间来回切换。有了这个权重的定义,现在可以计算任何样本的新变量,即 'average',如图 3.6 所示。
图 3.6 使用定义的权重计算新变量,该变量是乙醇和甘油的缩放平均值 (此处使用任意数字)。平均值计算为样本的 14 次测量与权重向量的内积。示例中使用了一些说教式的四舍五入。
如上所述,可以在原始两个变量和新变量之间来回切换。将新变量与权重相乘可提供原始变量的估计值(图 3.7)。
图 3.7 使用新变量和权重估计旧的原始变量。
这是一个强大的属性;可以使用权重将多个变量压缩为一个变量,反之亦然。为了概括这一点,请注意,只有当两个变量完全相关时,当前概念才能完美工作。想想学校系统中的平均成绩。许多特定的成绩会导致相同的平均成绩,因此通常不可能来回切换。要创建一个智能的新变量,很自然地会要求一个新变量,该变量实际上会提供一个很好的数据模型。也就是说,一个新的变量,当与权重相乘时,将尽可能多地描述整个矩阵(图 3.8)。这样的变量将是整个数据的最佳代表,因为没有其他加权平均值同时描述矩阵中如此多的信息。
图 3.8 定义权重 (w's),它将给出一个新变量,从而产生一个好的数据模型。
事实证明,PCA 为这个问题提供了解决方案。主成分分析提供了获取新变量所需的权重,该变量在某种意义上最能解释整个数据集中的变异。这个新变量(包括定义权重)称为第一主成分。
要找到实际葡萄酒数据的第一个主成分,有必要向前跳一点,先对数据进行预处理。查看数据(图 3.1),可以看出,一些变量(如 CO2)的测量数字比甲醇大得多。例如,对于样品 3,CO2 为 513.74 [g L-1],而甲醇为 0.18 [vol%]。如果不处理这个比例和可能 off 集的差异,那么 PCA 模型将只关注大量测量的变量。需要对所有变量进行建模,并且有一个称为 autoscaling 的预处理工具,它将使每列具有相同的 “大小” ,以便所有变量都有平等的建模机会。自动缩放意味着从每个变量中减去平均值,然后将变量除以其标准差。将更详细地描述自动缩放,但现在,重要的是要注意每个变量都转换为相等的大小,并且在此过程中,每个变量都将具有负值和正值,因为已减去其平均值。请注意,平均样本现在对应于所有零。因此,零不再表示没有 'signal',而是表示平均的 'signal'。
通过对数据进行这种预处理,可以执行 PCA。如何做到这一点的技术细节将在下面,但第一个主成分如图 3.9 所示。在下方的图中,显示了权重。与图 3.4 中相当稀疏的权重不同,这些权重对于所有变量都是非零的。第一个组成部分并不能解释所有变化,但它确实解释了数据中发生的情况的 25%。由于有 14 个变量,因此如果每个变量都显示独立于另一个变量的变化,那么每个原始变量将解释 100%/14=7% 的变化。因此,第一个组件是包装信息,可以说对应于大约 3-4 个变量。
图 3.9 葡萄酒数据的第一个主成分。下面的图显示了权重,上面的图显示了使用这些权重获得的加权平均值。
就像乙醇和甘油的平均值或学校的平均成绩一样,新变量可以解释为“只是一个变量”。权重定义如何确定变量以及每个样本具有此线性组合的分数。例如,可以看出,大多数南非样本的分数都是正的,因此,在具有正权重的变量(例如甲醇)上将具有相当高的值。这在图 3.2 中得到了证实。
3.2 理论
3.2.1 采用线性组合
数据被收集在一个矩阵中,该矩阵包含 行 ( ;通常是样本/对象) 和 列 (;通常是变量),因此大小很大。的单个变量(列) 用 () 表示,并且是 维空间中的所有向量。这些变量的线性组合 可以写成,其中 is now a new vector in the same space as the variables (因为它是这些变量的线性组合)。在矩阵表示法中,这变成了 带有元素 () 的向量。由于矩阵 包含与问题相关的变异,因此尽可能多地包含该变异似乎是合理的。如果 中的这种变化量是可观的,那么它可以作为变量的良好总结。因此,14 个变量 of 可以只替换为一个包含大部分相关信息的变量 r。
的变化可以通过它的方差来衡量,以统计学中的通常方式定义。然后,问题转化为选择最佳权重来最大化此方差。但是,有一个警告,因为将最优值与 任意大数相乘将使任意 的方差也很大。因此,要有一个合适的问题,必须对权重进行归一化。这是通过要求它们的范数(即平方和值)为 1 来实现的(见图 3.5)。在整个过程中,我们将使用该符号 来表示 Frobenius 范数(平方和)的平方。因此,形式问题变成了
这应该被理解为发现长度 1 的问题,它使 的方差最大化 (注意这与 要求相同)。函数 argmax 是用于返回最大化函数的参数的数学表示法。这可以通过使用以下事实来更明确地表示: :
其中,假设矩阵以均值为中心(则所有线性组合也以均值为中心)。后一个问题是线性代数中的标准问题,最优问题是协方差矩阵的(标准化的)第一个特征向量(即具有最大值的特征向量) 或相应的叉积矩阵 .
3.2.2 解释的变体
现在可以计算 的方差,但通过计算 的代表性程度来获得对 的总结能力的更有意义的评估。这可以通过投影 on 的列并计算该投影的残差来完成。这是通过使用普通回归方程对 on 的所有变量进行回归来实现 的
其中 是回归系数的向量, 是残差矩阵。有趣的是,等于 和整个回归机制可以用来判断摘要器的质量。传统上,这是通过计算
这称为.
在图 3.10 中,说明了如何计算解释的变化,也围绕 eqn (3.2.4).
图 3.10 举例说明如何使用数据和残差计算解释的变异。
请注意,上述度量称为 variations,而不是 variances。为了谈论方差,有必要校正模型消耗的自由度,这不是一项简单的任务。由于 PCA 模型的非线性性质,自由度并不像线性模型(例如线性回归或方差分析)那样简单。因此,在本文中,变化的大小将简单地用平方和来表示。
3.2.3 作为模型的 PCA
等式 (3.2.3) 强调了对 PCA 的重要解释:它可以被看作是一种建模活动(见图 3.11)。通过将 eqn (3) 重写为
显示 (outer-) 产品用作 (用 hat 表示) 的模型。在这个方程中,vector 是一个固定的回归器,vector 是要找到的回归系数。可以证明,实际上两者 和 都可以通过求解从这样的方程中建立
这也是线性代数中的一个标准问题,与 eqn (3.2.2) 具有相同的解。请注意,如果
图 3.11 PCA 模型的结构。请注意,残差 (
3.2.4 获取更多组件
如果 eqn (3.2.4) 的已解释变化百分比太小,则
哪里
可以使用术语“每个组件的解释变化”,类似于 eqn (3.2.4).
3.3 PCA 的历史
PCA 已经被(重新)发明了好几次。最早的表现是 eqn (3.2.6). 这种解释强调了 PCA 的建模特性,并且在很大程度上植根于回归思维:由主成分解释的变化(Pearson 的观点)。后来,在 30 年代,引入了采用变量线性组合的想法,并强调了主成分的变化 (eqn (3.2.1);Hotelling 的视图)。这是一种更加多元的统计方法。后来,人们意识到这两种方法非常相似。相似,但不相同。这两种方法之间存在一个基本的概念差异,理解这一点很重要。在 Hotelling 方法中,主要组成部分在其特定方向上被认真对待。第一个组件解释的变体最多,第二个组件解释的第二个组件,依此类推。这称为主轴属性:主成分定义了新的轴,这些轴应该被认真对待并有意义。PCA 可查找这些主轴。相比之下,在 Pearson 方法中,重要的是子空间,而不是轴本身。轴仅作为这个子空间的基础。在 Hotelling 方法中,旋转主成分会破坏对这些成分的解释,而在 Pearson 概念模型中,旋转只会为 (最佳)子空间生成不同的基础。
3.4 实践方面
3.4.1 预处理
通常,对原始数据执行的 PCA 不是很有意义。在回归分析中,通常包括截距或偏移量,因为它是与此类偏移量的偏差,这代表了有趣的变化。就原型例子而言,pH 值的绝对水平并不那么有趣,但不同赤霞珠的 pH 值变化是相关的。要使 PCA 专注于这种类型的变化,有必要对数据进行均值居中。这只需从
有时还需要考虑数据的规模。在葡萄酒的例子中,有浓度和 pH 值的测量。这些不在相同的尺度上(甚至不在相同的单位上),为了使变量更具可比性,变量是通过将它们除以相应的标准差来缩放的。以这种方式进行居中和缩放的组合过程通常称为自动缩放。有关居中和缩放的更详细说明,请参阅文献[1][2].
居中和缩放是两种最常见的预处理类型,通常必须确定它们。不过,还有许多其他类型的预处理方法可用。适当的预处理通常取决于所调查数据的性质[3]-[7].
3.4.2 选择组件数量
PCA 的一个基本原理是数据的信息排名小于原始变量的数量。因此,可以替换原来的
探索性研究。在探索性研究中,分析没有定量上明确定义的目的。相反,目标通常只是“查看数据”。那么关于使用多少个组件的简短回答是:“只使用前几个组件”。一个稍微复杂一点的答案是,在探索性研究中,不非常准确地固定组件的数量是很常见的。通常,人们的兴趣在于查看主要变体,根据定义,第一个组件提供有关该变体的信息。例如,无论包含组件 6 还是 7,组件 1 和 3 都不会改变,因此确定组件的确切数量通常并不太重要。从第一个组件开始向下查看和解释组件。随着所解释的变体越来越小,每个额外的组件都越来越不有趣,因此通常会逐渐降低对组件的兴趣。请注意,这种评估组件重要性的方法不应过于字面化。较小的变化对于特定数据集很重要可能是有原因的[9].
如果要使用适当的统计数据来诊断异常值(请参阅下一节),那么确定要使用的分量数量更为重要。例如,残差将根据使用的分量数量而变化,因此为了能够评估残差,必须使用合理数量的分量。有几种 Ad Hoc 方法可用于确定组件的数量。下面列出了一些方法,但请注意,这些方法很少提供明确和明确的答案。相反,它们通常以组合方式使用,以获得对数据的有效排名的印象。
特征值及其与 PCA 的关系。在描述这些方法之前,有必要解释 PCA 和特征值之间的关系。(方)矩阵的特征向量
哪里
哪里
的奇异值分解
哪里
这显示了奇异值和特征值之间的关系。对应于分量的特征值与平方奇异值相同,后者也是特定分量的变化。
碎石试验。 碎石测试由 R. B. Cattell 于 1966 年开发[10]。它基于以下假设:相关信息大于随机噪声,并且随机噪声的变化幅度似乎与分量数量呈线性关系。传统上,预处理数据的叉积的特征值绘制为分量数量的函数,当仅对噪声进行建模时,假设特征值很小并逐渐下降。在实践中,由于特征值巨大,因此在特征值图中看到这一点可能很困难,并且通常会绘制特征值的对数。图 3.1 2 中显示了两个数字,用于 4 阶的模拟数据集,并添加了不同数量的噪声。可以看出,特征值在四个分量之后的级别为 o ff,但除非放大,否则在原始特征值中很难看到细节。还可以看到,在高噪声水平下,实数和噪声特征值之间的区别很难辨别。
图 3.12 具有不同噪声级别的模拟 4 阶数据的碎石图。顶部图显示特征值。中间的图显示相同,但在 y 轴上放大到顶部图中指示的线。下面的图显示了特征值的对数。
对于真实数据,这些图甚至可能更难使用,正如 Cattell 的原始出版物以及许多其他出版物中所体现的那样[11]-[13]。卡特尔本人承认:“即使是像这样简单的测试,也需要掌握一些艺术来管理它”。事实上,这并不特定于碎石测试,而是适用于选择组件数量的所有方法。
对于葡萄酒数据,根据碎石测试确定成分的数量并不容易(图 3.13).有人可能会争辩说 7 个或 9 个分量似乎是可行的,但这意味着要合并解释很少变化的分量。更明显的选择可能是根据碎石图评估三个合适的分量,然后注意其他分量也可能包含有用的信息。
图 3.13 自动缩放的葡萄酒数据的碎石图。还会显示特征值大于 1 且折断的棍子的决策线。
Eigen值小于 1。如果数据是自动缩放的,则每个变量的方差为 1。如果所有变量彼此正交,则 PCA 模型中的每个分量的特征值都将为 1,因为预处理的叉积矩阵(相关矩阵)是恒等矩阵。因此,可以公平地说,如果一个组件的特征值大于 1,它解释了多个变量的变化。这导致了选择特征值大于 1 的所有分量的规则(参见图 3.13 中的红线)。它有时也被称为 Kaisers 规则或 Kaiser-Guttmans 规则,并且已经为这种方法提供了许多其他参数[14]-[16]。虽然它仍然是一种非常临时的方法,但它仍然是了解数据集复杂性的有用经验法则。对于葡萄酒数据(图 3.13),规则表明大约四到五个成分是合理的。请注意,对于非常精确的数据,即使特征值远低于 1 的分量也完全有可能是实数且有效。真实的现象可能变化很小,但很准确。
断了的棍子。特征值的更现实的 cut off 是通过所谓的断杆规则获得的。[17] 碎石图中添加了一条线,显示随机数据预期的特征值(图 3 中的绿线。14).这条线的计算假设随机数据将遵循所谓的断棒分布。折断的棍子分布假设了随机变化将如何分配,并使用了在随机位置折断成 J 块时棍子的长度将如何分布的类比[18]。可以证明,对于自动缩放的数据,这个理论分布可以计算为
如图 3.13 所示,折断的棍子似乎表明 3 到 4 个分量是合理的。
图 3.14 左:葡萄酒数据的第四分。右:2 分对4 分。
解释了高比例的变异。如果测量的数据具有例如 1% 的噪声,则预计 PCA 将描述所有变化,精确到 1% 左右。因此,如果双分量模型仅描述了 50% 的变异,并且其他方面是合理的,则可能需要更多的分量。另一方面,如果数据非常嘈杂,例如来自过程监控或消费者偏好映射,并且预期噪声分数可能为 40%,那么拟合 90% 变化的可靠模型将意味着过度拟合,应使用更少的组件。了解数据质量有助于评估组件的数量。在图 3.15 中,显示了解释的变体。该图等同于特征值图,不同之处在于它是累积的,并且具有不同的尺度。对于葡萄酒数据,每个变量的不确定性各不相同,相对于数据的变化,不确定性从大约 5% 到高达 50% 不等。这是相当可变的,因此很难估计应该解释多少变化,但可以肯定的是,小于 50% 意味着没有解释所有变化,解释超过 90-95% 的变化是没有意义的,只是噪声建模。因此,根据所解释的变异,很可能有 2 个以上的分量,但少于 7 个分量。
图 3.15 解释累积百分比变化。
有效的解释。 正如结果所表明的,上述不同的规则很少一致。这并不像看起来那么大。很多时候,唯一需要做的就是知道需要多少组件的邻域。“非正式地”和批判性地使用上述方法,通常会提供这样的答案。此外,选择分量数量的最重要策略之一是通过对模型的解释来补充这些方法。对于当前数据,可能会质疑是否应该使用例如三个或四个组件。
在图 3.13 中,可以看出,分量 4 的分数存在不同的结构。例如,阿根廷的葡萄酒都获得了正分。这样的结构或分组不会意外发生,除非发生了不幸的混淆。因此,只要阿根廷葡萄酒不是用不同的系统或类似的东西单独测量的,第四部分(分数或负载)显示出不同的行为这一事实就是支持包括该成分的论据。无论其他衡量标准可能表明什么,这都成立。
载荷还可以通过突出显示先验知识预期的相关性来提供类似的验证。对于连续数据(例如时间序列或光谱数据),查看残差的形状也很有指导意义。图 3 中提供了一个例子。16. 由 40 个啤酒样品的可见光和近红外光谱组成的数据集以灰色显示。在一个分量之后,残差仍然相当大,并且从光谱的角度来看非常结构化。在六个分量之后,留下的信息非常少,表明大多数系统变化已经建模。请注意,从图的标题中可以看出,对于这个数据集来说,95% 的解释变化是相当低的,而对于上面讨论的葡萄酒数据来说,这将是非常高的。
图 3.16 一个(左)和六个(右)分量后的光谱数据(灰色)和残差光谱信息示例。
交叉验证。在某些情况下,有必要比探索性或随意使用 PCA 更牢固地确定适当数量的组件。例如,可能需要 PCA 模型来验证新患者的数据是否表明该患者与患病患者相似。这可以通过检查样本在投影到 PCA 模型时是否为异常值来实现(请参阅下一节关于异常值)。由于异常值诊断取决于所选的分量数量,因此必须先确定分量数量,然后才能将模型用于其目的。有几种方法可以做到这一点,包括上述方法。但是,通常情况下,它们被认为过于临时,并且会使用其他方法。一种更流行的方法是交叉验证。S. Wold 是第一个引入 PCA 模型交叉验证的人[19],随后开发了几种略有不同的方法。
交叉验证的思路是省略部分数据,然后估计遗漏的部分。如果这样做是明智的,那么对 left-out 部分的预测将独立于实际的 left-out 部分。因此,过拟合导致模型过于乐观是不可能的。从概念上讲,数据矩阵的单个元素(通常不止一个元素)被省略。然后可以将处理缺失数据的 PCA 模型拟合到数据集中,并基于此 PCA 模型,可以获得遗漏元素的估计值。因此,在没有过拟合问题的情况下获得一组残差。取这些平方和,得到所谓的预测平方和(PRESS)
哪里
在图 3.16 中,显示了交叉验证的结果。如图 3 所示。15 与数据的拟合会随着分量数量的增加而逐渐提高,但在 4 个分量之后,RMSECV 会变得更差,这表明不应使用超过 4 个分量。事实上,从 3 个组件到 4 个组件的改进非常小,从这个角度来看,3 个组件可能是更可行的选择。
图 3.16 具有不同组件数量的 PCA 模型的 RMSECV 图。
交叉验证误差 RMSECV 可以与拟合误差 RMSEC 进行比较。但是,为了使两者具有可比性,必须根据模型使用的自由度校正拟合残差。
3.4.3 将 PCA 用于其他目的时
使用 PCA 作为预处理步骤是很常见的,以便获得数据集的漂亮紧凑表示。而不是原来的许多
图 3.17 使用 PCA 的分数进行进一步建模。
例如,通常的做法是使用交叉验证来确定组件数量,然后在进一步建模中使用该组件数量。例如,分数可用于使用线性判别分析构建分类模型。虽然这种选择组件的方法既可行又合理,但存在有助于改进分类的组件被遗漏的风险。例如,交叉验证可能指示 5 个分量有效,但事实证明,分量 7可以可靠地改进分类。为了确保在 PCA 模型中保留有用的信息,通常建议根据实际目标验证组件的数量。如果 PCA 与判别分析结合使用,则使用提供最佳分类结果的分量数量通常更有意义,而不是验证在某种意义上最能描述 X 的分量数量(PCA 交叉验证)。
3.4.4 检测异常值
异常值是以某种方式令人不安或不寻常的样本。通常,异常值是彻头彻尾的错误样本。例如,在确定人的身高时,会得到五个样本 ([1.78, 1.92, 1.83, 167, 1.87])。这些值以米为单位,但意外地,第四个样本以厘米为单位进行测量。如果样本没有被校正或删除,则后续分析将受到该异常值的不利影响。异常值检测是关于识别和处理此类样本的。异常值处理的替代或补充是使用稳健的方法,但此处不会详细讨论。
本节主要关注识别异常值,但了解异常值确实是关键方面。通常,异常值被错误地认为意味着错误的样本,没有比这更错误的了!异常值可能是绝对正确的,但例如,只是表现不佳。在这种情况下,解决方案不是删除异常值,而是用更多相同类型的数据来补充数据。最重要的是,必须了解为什么样本是异常值。本节将提供识别样本并查看它们有何不同的工具。然后,由数据分析师决定如何处理异常值。
数据检查。数据分析中经常被遗忘但很重要的第一步是检查原始数据。如前所述,根据数据类型的不同,许多种类的绘图可能是相关的。对于光谱数据,线图可能很好。对于离散数据,直方图、正态概率图或散点图可能是可行的。简而言之,任何有助于阐明数据各个方面的可视化都是有用的。本文已经展示了几个这样的情节。查看预处理后的数据也很重要,但经常被遗忘。虽然原始数据很重要,但它们实际上从未进入建模。将建模的是预处理过的数据,原始数据和预处理数据的解释可能存在很大差异。
评分图。虽然应始终调查原始数据和预处理数据,但很难从那里识别某些类型的异常值。PCA 模型本身可以提供更多信息。异常行为将在两个地方最明显地显示出来:分数和残差。检查所有选定的分数并寻找具有奇怪行为的样本是合适的。通常,只研究组件 1 和 2,但有必要查看所有相关组件。
至于数据,最好以多种方式绘制分数,使用散点图、折线图、直方图等的不同组合。此外,通过相同的情节通常很有用,但要用所有各种类型的附加信息来着色。这可以是任何类型的信息,例如温度、样品的储存时间、操作员或任何其他可用的定性或定量信息。对于葡萄酒数据模型,可以看到(图 3.18)在评分图 1 与 2(左上角)中,一个样品的行为与其他样品不同。
图 3.18 葡萄酒数据的四分量 PCA 模型的分数图。
查看加载图(图 3.19)表明样品的挥发性和乳酸含量必须(相对)高,而苹果酸含量必须较低。然后应在原始数据中验证这一点。删除此示例后,将重新生成并重新评估模型。在分数中没有观察到更多极端样本。
图 3.19 载荷 1 与载荷 2 的散点图。
在决定如何处理异常值之前,有必要查看组件的重要性。假设一个样本在前 7 个组件中表现得 “出色”,但在第 8 个组件中却表现异常。如果第八个组成部分在解释的变化方面非常小,并且对于模型的整体使用不是最重要的;那么删除这样的样本可能并不紧急。
每当对是否删除异常值有疑问时,比较删除前后的模型通常很有指导意义。如果解释或预期用途发生巨大变化,则表明样品具有需要处理的极端行为,而相反则表明样品是否被去除并不重要。
霍特林的 T2. 查看分数很有帮助,但一次只能查看几个组件。如果模型具有许多组件,则可能会很费力,并且意外遗漏某些内容的风险会增加。此外,在某些情况下,异常值检测必须自动化,以便在在线过程监控系统中发挥作用。有很多方法可以做到这一点,一种常见的方法是使用 1931 年推出的所谓 Hotelling's T2。此诊断可以看作是 t 检验的扩展,也可以应用于 PCA 模型的分数。计算公式为
哪里
在图 3.20 中,显示了 95% 置信限的示例。此图说明了此类限制可能产生的某种欺骗效果。两个样本超出置信限,导致没有经验的用户建议省略两个样本。然而,首先,在不了解样本为什么是错误的的情况下,不应该被排除在外,更重要的是,到目前为止,我们对数据的了解没有任何内容表明分数将遵循多元正态分布。因此,限制是相当武断的,对于这个特定的数据集,在评估样本是否合理时,图 3.18 中的绘图绝对是首选。在某些情况下,当有足够的样本可用并且这些样本确实来自同一总体时,分数大致呈正态分布。
图 3.20 PCA 分数图与图 3.18 (左) 相似,但现在显示的是 95%的置信限。
Hotelling 的 T2 提供的限值对于分组数据可能具有很大的误导性。例如,图 3.21 显示了数据集的分数图,其中样本分为四个不同的组(基于地质背景)。中间的样本称为 outlier?对于 Hotelling 的 T2 来说,它绝不是极端的,即使该样本与所有其他样本相距相对较远。
图 3.21 由来自四个特定采石场的黑曜石样品中 10 种浓度的微量元素组成的数据集的 PCA 分数图(1 对 2)——数据来自 Kowalski 的一项研究
分数贡献图。当样本被检测为异常值时,尝试调查原因通常很有趣。极值分数表示样本具有高水平的任何物质,特定成分反映在其相应的加载向量中。有时,很难直接验证发生了什么,而所谓的贡献图可以提供帮助。贡献图有几种不同的实现方式,但有一个通用版本最初是由 Nomikos 开发的。给定样本的贡献指示哪些变量导致该样本获得一组极端的分数。对于一组给定的元件(例如图 3.22 中的元件 1 和 2),这个贡献可以计算为
向量
图 3.22 葡萄酒数据中样本 34 的贡献图。
贡献图显示了哪些变量使所选样本具有极端的 Hotelling T2,在图 3.22 中,最有影响力的变量也是在原始数据中可见的变量(未显示)。Eqn3.4.10 解释了具有正交贡献图的最简单情况
孤独的狼。 想象一下这样一种情况,样本由不同的组组成,而不是如图 3.21 所示的单一分布。Hotelling 的 T2 并不是检测位置异常但离中心不远的样品的最明显选择。检测此类样本的一种方法是测量样本到最近邻域的距离。这也可以推广到到 k 个最近邻的平均距离,如果需要,可以使用各种距离度量。
在图 3.23 中,可以看到,根据到最近邻居的距离为分数着色,突出了实际上有几个样本与其他样本不是很接近。当样本不再如图 3.21 所示按类着色时,绿色的 K 类确实是一个定义明确的类就不那么明显了。
图 3.23 图 3.21 的得分图。样品根据样品与最近邻居的距离进行着色。
残 差。残差的使用已经详细描述过。对于异常值检测,通常使用每个样本的平方和残差(通常称为 Q 统计量)来查找 PCA 模型未充分描述的样本。当 Q 与 T2 作图时,通常称为影响图。请注意,残差和 T2 都会随着分量数的增加而变化,因此如果分量数数没有明确定义,则可能需要在不同分量数之间来回切换一下。
在图 3.24 的影响图中,很明显,在 PCA 模型中,一个样本的 Hotelling T2 较高,并且没有样本具有非常大的残差。因此,检查该样本的 T2 贡献图是合理的,以查看是否可以获得对极端行为的解释。两条蓝线是 95% 的置信度。这样的行通常在软件中给出,但通常不应该成为关注的焦点,就像上面对分数图所做的那样。
图 3.24具有四分量PCA模型的葡萄酒数据动态图。
残差贡献图。正如可以定义分数的贡献图一样,也可以确定残差变化的贡献图。这些更容易定义,因为高残差的贡献因子就是平方残差向量本身。因此,如果样本显示出异常的残差变化,则残差贡献图(样本的残差)可以指示样本具有高残差变化的原因。平方残差不会显示偏差的符号,有时,原始残差比平方残差更受欢迎,以便使符号可见。
3.4.5 参考资料
RA van den Berg、HCJ Hoefsloot、JA Westerhuis、AK Smilde 和 M. van der Werf,居中、缩放和转换:提高代谢组学数据的生物信息含量,BMC 基因组学,2006,7(142)。
R. Bro 和 AK Smilde,成分分析中的居中和缩放,J. Chemom。,2003,17(1),16-33。
NK Afseth、V. H. Segtnan 和 JP Wold,生物样品的拉曼光谱:预处理方法的研究,Appl. Spectrosc。, 2006, 60(12), 1358–1367.
C. D. Brown、L. Vega-Montoto 和 P. D. Wentzell,多变量校准中基线 drift 的导数预处理和最优校正,Appl. Spectrosc., 2000, 54(7), 1055– 1068.
SN Deming、JA Palasota 和 JM Nocerino,多变量对象预处理的几何学,J. Chemom。,1993,7,393-425。
H. Martens 和 E. Stark,扩展乘法信号校正和光谱干扰减法:近红外光谱的新预处理方法,J. Pharm. Biomed. Anal.,1991,9(8),625-635。
27 M. Pardo, G. Niederjaufner, G. Benussi, E. Comini, G. Faglia, G. Sberveglieri, M. Holmberg 和 I. Lundstrom, 数据预处理增强了对不同品牌的电子鼻浓缩咖啡的分类, Sens. Actuators, B, 2000, 69(3), 397–403.
R. Bro,多变量校准 - 分析化学家的化学计量学是什么?,Anal. Chim。植物学报,2003,500(1-2),185-194。
O. E. de Noord,数据预处理对多变量校准模型的稳健性和简约性的影响,Chemom。英特尔。实验室系统,1994,23,65-70。
R. B. Cattell,因子数的碎石检验,多变量行为。Res.,1966 年,1,245-276。
P. M. Bentler 和 K. H. Yuan,协方差矩阵特征值的线性趋势检验及其在数据分析中的应用,Br. J. Math. Stat. Psychol.,1996,49(2),299–312。
P. M. Bentler 和 K. H. Yuan,相关矩阵最小特征值的线性趋势检验, Psychometrika,1998,63,131-144。
R. C. Henry、E. S. Park 和 C. Spiegelman,将新算法与估计因子数的经典方法进行比较,Chemom。英特尔。实验室系统,1999,48,91-97。
H. F. Kaiser,电子计算机在因子分析中的应用,Educ. Psychol. Meas.,1960,20,141-151。
N. Cliff,特征值大于一规则和组件的可靠性,Psychol. Bull.,1988,103(2),276– 279。
L. Guttman,《共因子分析的一些必要条件》,Psychometrika,1954,19(2),149-161。
S. Frontier, Etude de la decroissance des valeurs propers dans une analyze en composantes principales: comparison avec le modele de baton brise, J. Exp. Mar. Biol. Ecol., 1976, 25, 67–75.
R. H. MacArthur,关于鸟类物种的相对丰度,美国国家科学院院刊,1957 年,43(3),293-295。
S. Wold,因子和主成分模型中成分数量的交叉验证估计,Technometrics,1978,20,397–405。
3.5 sklearn 主成分分析
本节详细介绍了 sklearn PCA 代码,以便读者了解如何构建 python 数据分析程序。
3.5.1 源码
这里我们采用了 sklearn.decomposition.PCA,它的版本是 0.18.0.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
----------
----------
self.n_components = n_components self.iterated_power = iterated_power self.random_state = random_state
# X_new = X * V = U * S * V^T * V = U * S
components_ = V
explained_variance_ratio_ = explained_variance_ / total_var n_components = \
self.n_components_ = n_components
self.n_components_ = n_components
|
3.5.2 示例
使用奇异值分解数据将其投影到较低维空间的线性降维。
它使用完整 SVD 的 LAPACK 实现或通过 Halko 等人 2009 年的方法随机截断 SVD,具体取决于输入数据的形状和要提取的组件数量。
它还可以使用截断 SVD 的 scipy.sparse.linalg ARPACK 实现。
>>> 将 numpy 导入为 np
>>> from sklearn.decomposition import PCA
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> pca = PCA(n_components=2)
>>> pca.fit(X)
PCA(copy=True, iterated_power='auto', n_components=2, random_state=无,svd_solver='auto', tol=0.0, whiten=False)
>>> 打印(pca.explained_variance_ratio_)
[0.9924... 0.0075...]
>>> 打印(pca.singular_values_)
[6.30061... 0.54980...]
为 PCA 模型设置 n_components=2,然后使用 X 拟合模型。输出由每个选定分量和奇异值解释的方差百分比.
>>> pca = PCA(n_components=2, svd_solver='full')
>>> pca.fit(X)
PCA(copy=True, iterated_power='auto', n_components=2, random_state=无,svd_solver='full', tol=0.0, whiten=False)
>>> 打印(pca.explained_variance_ratio_)
[0.9924... 0.00755...]
>>> 打印(pca.singular_values_)
[6.30061... 0.54980...]
为 PCA 模型设置 n_components=2 和 svd_solver='full',然后用 X 拟合模型。输出由每个选定分量和奇异值解释的方差百分比.
>>> pca = PCA(n_components=1, svd_solver='arpack')
>>> pca.fit(X)
PCA(copy=True, iterated_power='auto', n_components=1, random_state=无, svd_solver='arpack', tol=0.0, whiten=False)
>>> 打印(pca.explained_variance_ratio_)
[0.99244...]
>>> 打印(pca.singular_values_)
[6.30061...]
为 PCA 模型设置 n_components=1 和 svd_solver='arpack',然后用 X 填充模型。 输出由每个选定分量和奇异值解释的方差 p ercentage.
3.6 主成分回归
在统计学中,主成分回归 (PCR) 是一种基于主成分分析 (PCA) 的回归分析技术。通常,它考虑根据标准线性回归模型对一组协变量(也称为预测变量、解释变量或自变量)的结果(也称为响应或因变量)进行回归,但使用 PCA 来估计模型中的未知回归系数。
在 PCR 中,解释变量的主成分用作回归变量,而不是直接对解释变量进行回归。通常只使用所有主成分的子集进行回归,从而使 PCR 成为某种正则化过程。通常,选择具有较高方差的主成分(基于与解释变量的样本方差-协方差矩阵的较高特征值相对应的特征向量的主成分)作为回归因子。但是,为了预测结果,具有低方差的主成分也可能很重要,在某些情况下甚至更重要。
PCR 的一个主要用途在于克服多重共线性问题,当两个或多个解释变量接近共线性时会出现多重共线性问题。PCR 可以通过在回归步骤中排除一些低方差主成分来适当地处理这种情况。此外,通过通常仅对所有主成分的子集进行回归,PCR 可以通过大幅降低表征基础模型的有效参数数量来导致降维。这在具有高维协变量的设置中特别有用。此外,通过适当选择用于回归的主成分,PCR 可以根据假设的模型对结果进行有效预测。
3.6.1 源码
pcr.py | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #-*-coding:utf-8-*- from Cross_Validation import Cross_Validation
from principal_component_analysis.pca import PCA
self.n_folds = n_folds self.max_components = max_components
x = x_mp5spec #x_mp6spec
|
| |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #-*-coding:utf-8-*-
from principal_component_analysis.pca import PCA
self.n_folds = n_folds self.max_components = max_components
x_train = [] x_test = [] y_train = [] y_test = []
B = []
y_pre = y_pre + y_train_mean
comp_best = comp_array[0] + 1
|
3.6.2 K 折叠 Cross-V 碱性
在评估估计器的不同设置(“超参数”)时,例如必须为 SVM 手动设置的 C 设置,测试集仍然存在过度拟合的风险,因为可以调整参数,直到估计器达到最佳性能。这样,有关测试集的知识可以 “泄漏” 到模型中,并且评估指标不再报告泛化性能。为了解决这个问题,数据集的另一部分可以被保留为所谓的 “验证集”:在训练集上进行训练,然后在验证集上进行评估,当实验似乎成功时,可以在测试集上进行最终评估。
然而,通过将可用数据分为三组,我们大大减少了可用于学习模型的样本数量,并且结果可能取决于对(训练、验证)集的特定随机选择。
此问题的解决方案是一个称为交叉验证(简称 CV)的过程。测试集仍应保留以供最终评估,但在执行 CV 时不再需要验证集。在称为 k 折 CV 的基本方法中,训练集被分成 k 个较小的集合(其他方法如下所述,但通常遵循相同的原则)。对于每个 k 个 “folds” ,都遵循以下过程:
使用折叠作为训练数据来训练模型;
生成的模型在数据的剩余部分上进行验证(即,它被用作测试集来计算性能度量,例如准确性)。
然后,k 折交叉验证报告的性能度量 是循环中计算的值的平均值。这种方法的计算成本可能很高,但不会浪费太多数据(就像修复任意验证集时的情况一样),这在样本数量非常少的逆向推理等问题中是一个主要优势。
图 3.25 5 重交叉验证
3.6.3 示例
3.6.3.1 数据集说明
3.6.3.1.1 玉米数据集
包含 80 个样品的玉米数据集在三台 NIR 光谱仪(m5、mp5 和 mp6)上测量。每个样品由四种成分组成:水分、油、蛋白质和淀粉。波长范围为 1100-2400 nm,间隔为 2 nm(700 个通道)。以 m5spec 测得的光谱作为主光谱,用 mp6spec 测得的光谱作为次级光谱。将数据集分为 64 个样本的校准集和基于 Kennard-Stone (KS) 算法的 16 个样本的测试集。
3.6.3.1.2 小麦数据集
小麦数据集被用作 2016 年国际弥散性会议的点球数据,并选择蛋白质含量作为属性。将分析来自三个不同 NIR 仪器制造商(B248、B1 和 B2)的小麦数据集的 3 个样本。根据 KS 算法,选取 198 个样本作为校准集,其余样本构成检验集。波长范围为 570-1100 nm,间隔为 0.5 nm。
3.6.3.1.3Pharmaceutical Tablet Dataset
第三个数据集来自 IDRC shootout 2002,其中包含在两台光谱仪上测量的 655 片药物片剂,范围从 600 到 1898 nm,间隔为 2nm。我们可以从 http://www.eigenvector.com/data/tablets/index.html 获得它。有三个与此数据集相关的参考值,但我们只对每个样品的权重含量感兴趣。
3.6.3.2 不同数据集s PCR 模型的结果
3.6.3.2.1 玉米数据集
在本节中,玉米数据集用于实验。表 3.图 2 显示了直接使用玉米数据集的水分、油、蛋白质和淀粉含量的 PCR 模型的训练误差、交叉验证误差、预测误差和主成分数。
表 3.2 PCR 模型和特性总结.
|
| RMSEC | RMSEP |
|
| |
|
| 0.015763 | 0.024712 | 0.021779 | 14 | |
|
| 0.050141 | 0.062137 | 0.069252 | 15 | |
|
| 0.108987 | 0.119118 | 0.139915 | 12 | |
|
| 0.238211 | 0.235303 | 0.321736 | 12 | |
|
| 0.107022 | 0.126895 | 0.138539 | 12 | |
|
| 0.080531 | 0.068145 | 0.100688 | 10 | |
|
| 0.107912 | 0.165999 | 0.142857 | 13 | |
|
| 0.262573 | 0.337348 | 0.369614 | 15 | |
|
| 0.11744 | 0.103741 | 0.158303 | 15 | |
|
| 0.084096 | 0.066929 | 0.10598 | 10 | |
|
| 0.112759 | 0.146784 | 0.143704 | 12 | |
|
| 0.261581 | 0.359245 | 0.359148 | 14 |
RMSEC: 校准集的均方根误差
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
在本文中,PCR 算法的主成分 是通过 10 倍交叉验证方法选择的。RMSECV 的图片在这里给出。 此处还显示了测量值和预测值之间的比较。
图 3.26 关于m5spec仪器的PCR模型主成分编号选择过程
图 3.27 通过 PCR 确定的 m5spec 仪器的测量值与预测值
图 3.28 关于mp5spec仪器的PCR模型主成分编号选择过程
图 3.29 通过 PCR 确定的 m p5spec 仪器 的测量值与预测值
图 3.30 关于mp6spec instrument的PCR模型主成分编号选择过程
图 3.31 通过 PCR 确定的 m p6spec 仪器 的测量值与预测值
3.6.3.2.2 小麦数据集
在本节中,wheat 数据集用于实验。表 3.图 3 显示了直接使用 wheat 数据集的蛋白质含量的 PCR 模型的训练误差、交叉验证误差、预测误差和主成分数。
表 3.3 PCR 模型和性质总结.
|
| RMSEC | RMSEP |
|
| |
B1 |
| 0.229176 | 0.309061 | 0.260882 | 15 | |
B2 |
| 1.377594 | 1.352138 | 1.673944 | 5 | |
B3 |
| 0.212653 | 0.276625 | 0.253315 | 15 | |
A1 |
| 0.618719 | 0.498393 | 0.693591 | 13 | |
A2 |
| 0.636495 | 0.400822 | 0.710181 | 13 | |
A3 |
| 0.584967 | 0.531832 | 0.637815 | 14 |
RMSEC: 校准集的均方根误差
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
图 3.32 关于 wheat 数据集的 PCR 模型 主成分数选择过程
图 3.33 PCR 确定的 wheat 数据集 的测量值与预测值
3.6.3.2.3 P药片数据集
在本节中,p harmaceutical 片剂数据集用于实验。表 3.图 4 显示了直接使用 PHarmaceutical 片剂数据集的重量、硬度和测定内容的 PCR 模型的训练误差、交叉验证误差、预测误差和主成分数。
表 3.4 PCR 模型和特性总结.
|
| RMSEC | RMSEP |
|
| |
|
| 3.38803 | 4.22138 | 3.762873 | 9 | |
|
| 1.316597 | 0.677325 | 1.368493 | 3 | |
|
| 4.312213 | 5.867524 | 4.848849 | 13 | |
|
| 2.953375 | 4.14708 | 3.53662 | 14 | |
|
| 1.359982 | 0.630843 | 1.403434 | 2 | |
|
| 4.596838 | 5.95695 | 4.917867 | 7 |
RMSEC: 校准集的均方根误差
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
图 3.34 关于p药敏片数据集的PCR模型 主成分数选择过程
3.7 PAT 应用中动态模型估计的子空间方法
过程分析技术工具应用的主要目标之一是改进过程监测和控制。第二个是更好地了解正常过程的行为方式(即正常动态)。为了执行前馈控制,需要过程数据的时间序列模型。这种模型可以根据系统的已知物理/化学知识(即第一个主建模或机理建模)进行开发。然而,很多时候,由于缺乏可靠的信息,这是不可能的。这导致了系统识别(SI) 的需求。SI 中的一类模型是状态空间模型,即通过估计所谓的系统状态,将系统在时间 k 的输入与时间 k 的输出联系起来的线性模型。状态空间模型可以使用所谓的子空间方法进行拟合。子空间方法基于数据在子空间上的投影,例如,在训练阶段通过时移数据的奇异值分解来识别。本文介绍了状态空间模型,说明了子空间方法如何与已知的化学计量学工具密切相关,以及如何将它们应用于基于模型的前馈过程监测和控制。这些概念使用来自本质上非线性牛奶凝固过程的数据集进行说明,该数据集可以通过使用一小组虚拟(或主要)状态的线性动态模型很好地近似。我们提出了一种替代的过程监控策略,其中实时估计正在开发的牛奶凝固批次的动态成分和边界条件,并与正常操作条件进行比较。
3.7.1 简介
过程分析技术 (PAT) 和质量源于设计 (QbD) 工具应用的主要目标是所谓的实时放行。根据 2004 年 FDA 的 PAT 指南,实时放行是指“根据过程数据评估和确保过程中和/或最终产品可接受质量的能力”[1]。这意味着需要对动态(变化)系统进行(多变量)过程监测和控制。因此,不同的多元统计过程控制 (MSP1C) 方法长期以来一直是化学计量学学会的研究兴趣 [2-5]。然而,MSPC 中的主要方法集更适合于反馈控制(后问题),而不是前馈控制(前问题)。为了便于前馈控制,需要过程数据的时间序列模型。这可以基于系统的已知物理/化学知识(第一原理或机理建模 [6])来实现。然而,由于缺乏对系统的(绝对)了解,例如在食品生产等复杂过程中,这是不可能的,因此需要系统识别(SI)。SI 中的一类模型是状态空间模型。它们是线性的、时不变的模型,通过估计系统状态,将时间 k 对系统的输入与时间 k 的输出联系起来。 这些状态试图捕获或建模系统的动态行为或发展,但没有直接的物理意义,就像主成分分析 (PCA) 中的概念主成分或潜在变量一样。状态空间模型可以使用迭代预测器误差算法进行拟合,也可以使用所谓的子空间方法进行拟合,这些方法基于数据在子空间上的投影,例如,通过奇异值分解来识别。本文的目的是讨论状态空间模型,说明子空间方法与已知的化学计量学工具密切相关,并展示如何将它们应用于前馈过程监测和控制。
3.7.2 Theory
离散时间状态空间模型可以通过向量/矩阵积编写,如方程 3.7.1 和 3.7.2 所示。它们是线性模型,在时间 k (
(3.7.1)
(3.7.2)
A 矩阵(大小 n
为了在基于时间序列的过程监控方案中使用方程 3.7.1 和 3.7.2,必须了解或估计系统矩阵。如前所述,这在理论上可以根据已知的系统物理/化学知识来实现,但很多时候,由于缺乏(足够的)系统知识,这是不可能的。这导致了对 SI 的需求,SI 中的一类算法是子空间识别。读者可参考附录以及 van Overschee 和 De Moor 有关如何对本文中使用的子空间算法进行系统矩阵估计的更多详细信息。由于多项研究发现基于分析的规范变量 (CVA) 算法优于其他算法(有关详细信息,请参阅后续部分),因此使用此方法拟合状态空间模型(请参阅附录)。我们研究中研究的系统是没有外部输入的纯批处理过程,从而产生所谓的随机时间序列(例如,生物反应器中的啤酒生产通常以纯批处理方式运行,没有主动输入)。计算/估计保持不变,其中所有与 input 相关的部分都被零条目取消。应用的算法以正向创新形式生成状态空间模型,这意味着使用最佳最小二乘增益 (K) 作为预测中的驱动项(以替代确定性输入
(3.7.3)
(3.7.4)
这里
3.7.3 化学计量学中的State 空间模型
在化学计量学中应用状态空间模型的想法并不新鲜,尽管没有得到广泛传播。1990 年代末和 2000 年代初,化学计量学文献中发表了一系列关于状态空间建模的论文,但在过去 10 年中,该研究领域受到的关注较少。在这里,我们将给出一个(非详尽的)概述。1997 年,Negiz 和 Cinar 发表了一篇关于状态空间模型的化学计量学论文。结果表明,偏最小二乘法 (PLS) 可用于fi
t 状态空间方程,但与此同时,它表明 Modifi
PLS 算法的阳离子对于给出有用的结果是必要的。事实证明,一种基于 CVA 的方法可以产生最好的结果。Hartnett 及其同事在 1990 年代末发表了两篇不同的论文。在fi
在这两篇论文中,遗传算法与主成分回归 (PCR) 结合使用,对过程变量进行动态推理估计 [9]
.使用了底层状态空间模型的测量方程,但重点不是状态空间模型本身。这将在论文的后面进行 [10]
,其中显示了如何使用 PCA 和状态空间建模的组合对非线性多变量生产工厂进行建模。这个想法是对流程输出执行 PCA;然后将获得的分数用作状态,将载荷用作 C 矩阵(本文的测量方程中没有使用输入 [10]
).系统方程随后确定fi
ed 通过连接状态矩阵和输入矩阵,并通过 PCR 对未来状态的串联矩阵进行回归。将基于 PCA 的状态空间模型与分析状态空间模型进行了比较。两者都在逼近非线性系统方面具有良好的性能。作者指出,在使用这种基于 PCA 的方法时,不需要事先决定模型顺序。这是正确的,但需要决定 PCA 和 PCR 步骤中主成分的数量。埃尔贡[11]
使用状态空间方程 PCR 和 PLS 来推导出可用于从一个输出变量预测另一个输出变量的关系。还给出了一个状态空间建模的例子,但这是通过预测器误差法 (PEM) 进行的。此外,还提出了基于 PEM 状态空间模型的用于输出预测的动态系统 PCR 和 PLS 解决方案。在 Ergon 和 Halstensen 后来的一篇论文中 [12]
,这些结果针对具有低采样率参考测量的系统进行了详细说明 – PCA 和 PEM 的组合用于生成参考测量的预测,与 PLS 相比,性能更好。Shi 和 MacGregor 给出了完整的评论 [13]
的不同子空间方法,并将它们与
不同的潜在变量技术 (PCA、PLS 和 PCR)。他们得出了两个总体结论:(i) 对于过程监控(“我的过程是否正常?”),潜在变量方法是首选,但对于过程识别fi
cation (“What are the process dynamics?” 或 “Where is my process heading?”),专用子空间标识fi
阳离子方法优先;(ii) CVA 和 N4SID 算法[7]
具有他们测试的子空间方法的最佳性能。在最近的论文《在化学计量学文献中应用状态空间模型》中,Pan 等人。[14]
显示,与fi
Shi 和 MacGregor 的第一个结论 [13]
,如果与基于 PCA 的监控相比,如果应用状态空间/子空间方法,则可以存档更好的监控性能。作者使用 PCA 来降低输出的维数,然后是fi
tting 状态空间模型。A 卡尔曼fi
随后使用 lter。根据作者的说法,该模型的很大一部分优势是卡尔曼实施的结果filter.
3.7.4 M同类凝血监测
在本文中,展示了如何通过结合近红外 (NIR) 光谱、PCA 和基于子空间的状态空间估计来观察和建模牛奶凝固的动力学。例如,用于奶酪生产的牛奶凝固是一个纯粹的随机时间序列,没有输入或控制,因此根据方程 3.7.3 和 3.7.4 进行建模。通过 NIR 光谱监测 12 批凝固乳。该数据最初由 Lyndgaard 等人 [15] 发表,有关程序和测量的更多详细信息,包括批号,请参阅此出版物。在该论文中,表明 NIR 数据的 PCA 分解分数可以通过机理模型进行建模 [15]。在本手稿中,表明也可以通过 SI 对数据进行建模,而无需事先对过程动力学进行假设。在本文中,我们将遵循状态空间文献中使用的标准符号。
图 3.39(A) 一批凝固牛奶的近红外 (NIR) 反射光谱。(B) 12 个不同凝固牛奶批次的 NIR 光谱随时间变化的 PCA 评分。
可以看出,随着时间的推移,主要影响是 1400-1500 nm 附近水带的变窄和增加,这可归因于凝胶的形成和硬化 [16]。这是所有 12 个批次的总体趋势。为了不混合符号,此 PCA 步骤写为
8 次批处理运行将被视为训练 NOC 批处理,4 次运行作为测试集(批处理 1 和 12 为 NOC,批处理 3 和 8 为极值/非 NOC)。一般的 PCA 分数轨迹可以用三个不同的阶段来描述:一个非常短的滞后阶段加上一个衰减的 S 形曲线和一个指数衰减,所有这些阶段都以不确定的边界/过渡时间相互叠加 [15]。了解/预测最后阶段(凝胶硬化)的发展对于奶酪制造非常重要,因为它提供了有关最佳切割时间(生产中的后续步骤 [15])的信息,从而提供了最终产品的质量。尽管可以观察到明显的非线性趋势,但预计数据可以通过 suf ficient 秩的线性状态空间模型很好地近似。此外,可以注意到两个批次与其他批次明显不同:批次 3 在前 5 分钟内的分数值增加,然后是一个非常短的 S 形部分,这导致所有批次的“最终值”最高。批次 8 的 “end value” 较低,滞后阶段较长。应该注意的是,所有实验运行都尽可能相似地进行,因此异常行为是由意想不到但自然的变化引起的 [15]。
3.7.5 S卫星空间监测
在我们的牛奶凝固研究中,delta 时间是 NIR 光谱仪的测量频率(每 36 秒给出一个新结果,因此,k
自k+1
需要 36 秒)。每个新的 NIR 数据收集在收集后立即通过标准的常变量缩放进行分散校正。新的扩展光谱矩阵Z
居中,并执行 PCA 分解。在校准阶段,确定使用中心数据的单分量 PCA 模型与使用非中心数据的双分量模型基本相同,其中fi
第一个主成分接近平均值
NIR 光谱,第二个显示了本研究中感兴趣的动力学。因此,遵循简约的概念,在中心数据上使用单分量 PCA 模型是首选。为了避免在随后的状态空间建模过程中由于分数值向量的符号变化而导致的数值问题,所有分数都被提升为正值。这是通过简单地将正确的、相同的数量添加到到目前为止收集的所有分数值来执行的,以使fi
RST 分数值等于 10 (y0
= 10)。此操作在每次新的 PCA 分解后执行。PCA 分数时间轨迹是零阶保持重采样的 [6]
要将数据点的数量增加一倍,之后状态空间模型可以是fi
tted 的。在此过程中,通过在中间时间重复一次测量数据值来增加此真实值及其接下来的测量邻居(给出不会在系统中引入错误动态的“阶梯”重采样信号)。这样做是为了在批次监测开始时实现对汉克尔矩阵的更稳定估计(参见附录),因为只有少数测量观测值可用。模型是fi
TTED 递归方式进行模拟,这意味着实时数据采集是通过逐步模拟的,包括越来越多的观测。这fi
每个批次的 RST 状态空间模型为fi
tted 时,fi
第一 k
收集 = 16 个 NIR 光谱(相当于凝结过程大约 9 分钟,很好地通过凝胶形成的初始滞后期,正常批次的 S 形期内部 [15]
,图 3.39 (B))。在下一个时间步,数据集中再包含一个 NIR 光谱,并根据新计算、偏移校正和重新采样的 PCA 分数确定状态空间模型k
= 17.通过这种方式,可以对A
矩阵(包含系统的估计动力学)和初始状态向量x0
(表示系统的估计初始或边界条件)。所有这些计算步骤在普通个人计算机上只需不到 1 秒,因此可以以 36 秒的 NIR 测量速率“实时”执行(完整计算过程见图 3.44)。
A 的特征值反映了系统的动力学和稳定性 [6];稳定的离散线性时不变系统在单位圆内具有特征值(其中复特征值表示振荡系统)。通过比较不同运行的 A 的特征值,可以比较不同批次的开发情况。在 NOC 批次的训练集的基础上,可以构建系统矩阵 A 随时间变化的统计过程控制 (SPC) 图表,并将其应用于新的生产运行。初始状态估计 x0 给出了方程 3.7.1 或 3.7.3 中差分方程的边界条件信息。这表示对批次中初始条件的最佳估计。出于监控目的,我们建议 x0 和 的元素的 95% 置信区间 (95% CI)
3.7.6 Results
状态空间建模中的一个关键步骤是顺序或等级选择,即系统中的状态数量。为此可以使用不同的工具,正如此处附录中所述,我们将使用块 Hankel 矩阵的奇异值(该矩阵由每个批次的时间序列的时移版本构建而成)。由于协方差矩阵的特征值可用于决定 PCA 分量的数量,因此其思路是检查块 Hankel 矩阵的奇异值。图 3.40 表示平均奇异值和大约 95% 的置信限,该限值基于具有 6 个区组行的 8 个完整 NOC 批处理运行的 Hankel 矩阵的 Student t 统计量。图 3.40 显示了前两个奇异值如何非常稳定,而其余四个奇异值具有更高的方差/不确定性。从这个图中,系统顺序因此被认为是两个,从观察 PCA 分数轨迹中的两个主要阶段(S 形衰减和指数衰减,其中滞后相位太短并且存在较弱,我们的采样率 36 秒无法捕获)来看,这似乎也是合理的。对于三级系统(其中为系统矩阵 A 发现一个实数和两个复特征值),在模型的预测性能方面没有观察到显著差异,而一级模型在有偏差的预测下表现严重不佳(结果未显示)。
图 3.40 正常工作条件数据的块 Hankel 矩阵的缩放奇异值。
方程式 3.7.3 和 3.7.4 能够预测未来的系统输出。因此,验证状态空间模型的一种自然方法是将预测的输出与实际的系统输出进行比较。图 3.41 显示了在每个单独的批处理运行中拟合的模型如何处理四个测试批次的提前一步预测。收集 K =1 到 k 的数据;对收集的数据执行状态空间建模,并使用 equations 3.7 找到提前一步的预测。3 和 3.7.4. 图3.41 显示,对于所有批次,包括非 NOC 批次,提前一步预测分数向量都非常接近观察到的结果。因此,二阶状态空间模型擅长捕获基本动态并在短时间内产生预测。
图 3.41 四个测试批次的观测分数向量和提前一步预测(标记)。
然而,应该指出的是,仅测试提前一步预测并不是很强大,因为这可能会导致非常乐观的预测错误。为了测试更长的时间范围预测,因此在每个测量点之后预测每个批次的最终评分值,此处为凝血 36 分钟 [15]。因此,第一个预测是 27 分钟的视野预测(对应于提前 45 步的预测)。在下一个时间步(36 秒后),再获得一个数据点,一个新系统,包括初始状态标识和根据此信息预测的最终值。图 3.42 显示了最终值预测的误差。在提前预测不止一步时,一个挑战是不可能获得 e等值 3.7 中未来值的创新 (ek+n)。3. 对未来时间点的最佳猜测 – 在图 3.42 中使用 – 是 ek,这是已知的最后一个创新,可以替代剩余的时间步长。
图 3.42四个测试批次的最终值预测的预测误差。
在图 3.42 中可以注意到几件事。正如预期的那样,随着越来越多的测量值可用于拟合模型并且需要的外推更少,最终值估计会变得更好,并且在大约 12 分钟后,就可以获得批次 1、3 和 12 的可接受批次结束值估计。初始模型在预测非 NOC 批次 8 的结束值方面具有明显的差异;在批次开始 20 分钟之前,无法以令人满意的小误差预测结束值。这是由此批次的较长滞后阶段(NOC 集中不存在)和延迟响应引起的。
为了实现过程监控,实现了 A 的特征值和 x0 的元素的 SPC 图。这些图表如图 3.43 所示,适用于四个测试批次。可以观察到,在所有控制图中,NOC 批次都保持在建议的 95% 置信限内或附近,而两个偏离的批次明显打破了其中几个批次的限值。例如,可以观察到,两个非 NOC 批次在 9-10 分钟后都已经打破了 A 第一特征值的控制图中的 95% 置信区间,这清楚地表明这两个批次不遵循 NOC 动力学。两个偏离的批次也超过了 x0 的控制限值,这再次表明这些批次没有获得与训练批次相同的估计起始值或边界值。还值得注意的是,基于 NOC 集的前 10-12 分钟的置信区间相当宽泛——这反映了基于前几个数据点的模型显然不如后来的模型定义得更清楚(特别是对于代表凝固硬化的指数衰减部分)[15].
图 3.43 A矩阵的特征值和初始状态向量 x0 的统计过程控制图 .
在图 3.39 (B) 中,注意到批次 3 具有较短的 S 形(或指数衰减的早期开始),并且与 NOC 批次相比,批次 8 延迟。这反映在特征值的控制图中。图 3.43 中的批次 3 有一个偏移量,使其超出置信限,但仍然遵循与 NOC 批次相同的轨迹,而批次 8 的慢速动力学被视为 A 的第一个特征值的延迟.
3.7.7. 结束语
在这项工作中,提出了 PAT 应用程序中用于系统识别的状态空间模型和子空间方法。结果表明,子空间方法支持状态空间建模,而无需 对模型形状/形式进行先验假设。从这个意义上说,子空间方法使建模成为数据驱动的,而不是假设驱动的。这些模型能够产生良好的短期和长期预测。进一步表明,状态空间模型是过程监控的潜在工具。传统的 MSPC 控制图以静态方式影响过程,而本研究中提出的控制图则影响过程的动态行为。
3.7.8. 附录
可以使用不同的状态空间建模算法。一种在控制工程学会中流行的方法是预测误差法 (PEM)。PEM 的优点是,在建模过程中可以包含系统的任何第一主要知识 [17]。但这也是 PEM 算法的缺点 – 它们强烈依赖于所选的参数化。PEM 的主要竞争对手是子空间方法。一类子空间方法基于奇异值分解 (SVD)。这意味着这些方法与 PEM 相反,是非迭代的,除了可以从输入/输出数据的奇异值估计的模型阶数之外,不需要其他参数化选择。在子空间建模过程中应做出两个决定:Hankel 矩阵的大小和模型阶数 n。Hankel 矩阵是对称的,并且在对角线上具有相同的元素。为输入序列 (u0, u1, u2 ...ui+j—1) 和相应的输出序列 (y0 y1, y2 ...yi+j—1),在方程 61 和 62 中,汉克尔矩阵为 [7]:
可以为状态序列 (x0, x1, x2 ...习+j—1),其中每个条目都是长度为 n(系统的秩)的向量,而不是标量。“过去”和“未来”数据之间的分离反映了未来的输入、输出和状态如何根据过去的输入、输出和状态进行回归。块行数的选择(“过去”和“未来”范围)应使 i 大于预期的系统阶数 n,而 i + j + 1 由可用训练时间序列的长度决定.
输入和输出 Hankel 矩阵可以组合成一个块 Hankel 矩阵 W。因此,例如,“过去”块 Hankel 矩阵 Wp 将被定义为 [7]:
Wp 的化学/物理秩 是对系统中动态分量(可以称为特征频率)的真实潜在数量的估计。 因此,Wp 可用于估计系统阶数 n。观测数据的块汉克尔矩阵与系统状态的可观察性和可控性的概念密切相关 [7]。一般来说,如果状态可以从系统的输出 yk 中唯一确定,那么它们可以说是可观察的。一个有用的系统相关矩阵是可观测性矩阵 Γ,定义为:
如果 Γ 的秩 等于 n(状态向量 xk 中的元素数),则系统是可观察的。另一个有用的系统相关矩阵是可控性矩阵 Δ。顾名思义,它与系统的可控性有关。如果系统可以通过输入序列 u k 达到任何所需的状态,那么它是可控的。可控性矩阵定义为:
最后一个需要定义的系统相关矩阵是下块三角 toeplitz 矩阵 H:
可以证明 [18] 原始向量/矩阵计算在 3.7 中。1 和 3.7。2 可以通过前面定义的系统相关矩阵以以下格式重新表述:
可用的不同子空间算法基本上可以求解这组方程,其中 A B、C 和 D 矩阵在 e等式 3.7 中。1 和 3.7。2 对于用户定义的系统排名 n,是估计的。术语“子空间”是指算法中的第一步是“未来”输出 (Yf) 在“过去”块汉克尔矩阵 Wp 上沿未来输出 Yf 的倾斜(或非正交)投影 O。然后根据此加权斜投影计算奇异 SVD:G1OG2 = ŨSVT,其中 G1 和 G2 是由特定算法确定的权重(其中 – 在 CVA 解的情况下 – G1包含未来输出的协方差估计的平方反比根,G2 是恒等式 [7])。然后使用 Ũ 和 S 来确定可观测性矩阵 (Г),即 Г = G1ŨS1/2。 因为斜投影等于 Г 和状态 (Xk) 的乘积,所以是否可以通过 X = Г+O 来确定状态,其中使用了可观测性矩阵的 Moore-Penrose 伪逆矩阵。然后,“过去”和“现在”之间的边界可以移动一步,以确定下一个时间步 (X, k+1) 的状态,使 A、B、C 和 D 矩阵成为线性方程组中唯一可以用最小二乘求解的未知数。
对于本手稿中讨论的没有输入信号的批处理情况,使用了 Peter van Overschee 和 Bart de Moor 所著的《线性系统的子空间识别》一书中基于 CVA 的随机算法 3。在这种情况下,“过去”块汉克尔矩阵等于“过去”输出 (Yp),然后算法遵循与确定性情况下相同的 fl ow:从“未来”输出和块汉克尔矩阵(=“未来”输出 (Yf))中确定 O,从加权 O 中确定可观测性矩阵 (Г),通过以下方式确定状态 X = Г+O,然后用最小二乘法求解线性方程组。此外,该算法还具有产生正实协方差序列的附加功能,使算法产生的解在物理/化学上具有意义。为此付出的代价是解决方案中的偏见。相当于随机系统的可控性, 即 3.7。3 和 3.7.4 有时被称为可达性 [11](系统动力学和噪声输入可以达到的系统潜在状态),而可观测性有时被可检测性(那些可以被系统动力学和噪声输入观测/检测或“激发”的系统潜在状态)所取代。
图 3.44 基于状态空间的监控数据流。
1本节内容主要参考:T, J Hoeg, and F. W. J. V. D. Berg.“PAT 应用中动态模型估计的子空间方法。”化学计量学杂志 26.8-9(2012):0-0。
3.7.9 参考
快速微生物学方法的验证[J]. 实验室自动化杂志,20(3):259-264。
Laursen K, Rasmussen MA, Bro R. 应用于色谱的综合控制图。 化疗。英特尔。实验室系统。 2011;107:215-225。
秦.S.J. 统计过程监控:基础知识及其他。 J. 化学计量学 2003;17:480-502。
库尔蒂 T,麦格雷戈 JF。使用多元投影方法进行过程分析、监控和诊断。化疗。英特尔。实验室系统。 1995; 28:3-21。
Skagerberg B, MacGregor JF, Kiparissides C. 应用于低密度聚乙烯反应器的多变量数据分析。 化疗。英特尔。实验室系统。 1992;14:341-356。
Roffel B, Betlem B. 用于控制和预测的过程动力学和控制建模。John Wiley & Sons, Ltd.: 英国西萨塞克斯郡, 2006
van Overschee P, De Moor B. 线性系统的子空间识别,Kluwer 学术出版社:奥斯顿/伦敦/多德雷赫特,1996 年。
Negiz A, Cinar A. PLS,用于在状态空间中识别 VARMA 模型的平衡和典型变量实现技术。 化疗。英特尔。实验室系统。 1997;38:209-221。
哈内特 MK、Lightbody G、欧文 GW。使用主成分回归 (PCR) 进行动态推理估计。化疗。英特尔。实验室系统。 1998;40:215-224。
哈内特 MK、Lightbody G、欧文 GW。使用主成分分析识别状态模型。 化疗。英特尔。实验室系统。 1999;46:181-196。
Ergon R. 动态系统多变量校准。 化疗。英特尔。实验室系统。 1998;44:135-146。
Ergon R, Halstensen M. 使用ow-sampling-rate y 数据的动态系统多变量校准。J. 化学计量学 2000;14:617-628。
石瑞杰, 麦格雷戈 JF.使用潜在变量和子空间方法对动态系统进行建模。J. 化学计量学 2000;14:423-439。
PANYangdong, Yoo C, Lee JH, Lee IB. 具有周期性特征的连续过程的过程监控。 J. 化学计量学 2004;18:69-75。
牛奶凝固的实时建模。 J. 食品工程师 2012;108:345–352。
Dahm D, Lyndgaard Hansen Ch, Hopkins D, Norris K. NIR 论坛:凝固牛奶分析。 NIR 新闻 2010;21(5):16-17。
容 L. 系统识别 – 用户理论(第 2 版)。Prentice Hall PTR:美国新泽西州上马鞍河,1999 年。
De Moor B. 静态和动态系统建模的数学概念和技术,博士论文,电气工程系,比利时鲁汶大学,1988 年
4. 偏最小二乘法
4.1 基本概念1
偏最小二乘法 (PLS) 是一类广泛的方法,用于通过潜在变量对观测变量集之间的关系进行建模 。它包括回归和分类任务以及降维技术和建模工具。所有 PLS 方法的基本假设是,观察到的数据是由 系统或过程生成的,该系统或过程由 少量潜在(未直接观察或测量)变量驱动。通过PLS将观测数据投影到其潜在结构 上,由Herman Wold及其同事开发[25,26]。
PLS 在化学计量学领域受到了极大的关注。该算法已成为处理各种化学数据问题的标准工具。PLS 在化学计量学方面的成功导致了其他科学领域的大量应用,包括生物信息学、食品研究、医学、药理学、社会科学、生理学——仅举几例 [16, 14]。
本章介绍了 PLS 的主要概念,并概述了其在数据分析问题中的应用。我们的目标是提供一个简明的介绍,即为任何关心数据分析的人提供有价值的指南。
在其一般形式中,PLS 通过最大化不同变量集之间的协方差来创建正交分数向量(也称为潜在向量或分量)。本章考虑了处理两个变量块的 PLS,尽管存在 PLS 扩展以模型更多集合之间的关系 [23, 24]。PLS 类似于典型相关分析 (CCA),其中提取具有最大相关性的潜在向量 [13]。有不同的 PLS 技术可以提取潜在向量,每一种技术都会产生 PLS 的一个变体。
PLS 可以自然地扩展到回归问题。预测变量和预测(响应)变量都被视为一个变量块。然后,PLS 提取用作新预测变量表示的分数向量,并回归这些新预测变量的响应变量。预测变量和响应变量之间的自然不对称性在分数向量的计算方式上有所不同。此变体的名称为 PLS1(一个响应变量)和 PLS2(至少两个响应变量)。PLS 回归曾经被统计学家忽视,并且仍然被认为是一种算法,而不是一个严格的统计模型 [8]。然而,在过去几年中,人们对 PLS 的统计特性的兴趣有所上升。PLS 与其他回归方法有关,如主成分回归 (PCR) [15] 和 Ridge 回归 (RR) [9],所有这些方法都可以归入一种称为连续体回归 [21, 5] 的统一方法。 PLS 的有效性已经从理论上研究了其方差和收缩特性 [12, 1, 1, 3]。在几项模拟研究中研究了 PLS 的性能 [1]。
PLS 还可以通过在适当的指示矩阵中对类成员资格进行编码来应用于分类问题。用于分类的 PLS与 Fisher 判别分析 (FDA) 有着密切的联系。PLS 可以用作判别工具和降维方法,类似于主成分分析 (PCA)。提取相关潜在向量后,可以应用适当的分类。PLS 与支持向量机 (SVM) 的组合已在 [18] 中进行了研究。
最后,基于内核的学习的强大机制可以应用于 PLS。内核方法是将线性数据分析工具扩展到非线性问题的一种优雅方式[20]。
4.1.1 偏最小二乘法
考虑线性 PLS 算法的一般设置,以对两个数据集(变量块)之间的关系进行建模。表示方式
(4.1.1)
从图形上看,等式。 4.17 和 4.18 可以显示为
无花果。 4.1其中,T,u 是 (n × p) 提取的分数向量(分量、潜在向量)的 (n p) 矩阵,(N × p) 矩阵 P 和 (M × p) 矩阵 Q 表示载荷矩阵,(n × N) 矩阵 E 和 (n × M ) 矩阵 F 是残差矩阵。
PLS 方法的经典形式基于非线性迭代偏最小二乘法 (NIPALS) 算法 [24],对权重向量 w、c 进行排序,使得
(4.1.2)
其中cov(tu)=tTu/n表示分数向量t和u之间的样本协方差NIPALS算法以随机初始值开始的Y 空间得分向量 u 中,并重复以下步骤的序列,直到收敛。
请注意,如果M=1,则u=y,即 Y是一个一维向量,我们用y表示在这种情况下,NIPALS过程在一次迭代中收敛。
可以证明,权重向量 w 也对应于以下特征值问题的第一特征向量 [10]
(4.1.3)
然后,X 和 Y 空间分数向量 t 和 u 被给出为
(4.1.4)
其中,权重向量 c 在 NIPALS 的步骤 4 和 5 中定义。同样,可以推导出提取 t、u 或 c 估计值的特征值问题 [10]。然后,用户求解其中一个特征值问题,其他分数或权重向量可以使用 NIPALS 中定义的关系轻松计算。
4.1.2 偏最小二乘法的形式
PLS 是一个迭代过程。在提取分数向量 t、u 后,通过减去基于 t 和 u 的 1 阶近似值来简化矩阵 X 和 Y。 不同形式的 defation definne几种 PLS 变体。
使用方程 (4.1.1) 载荷 p 和 q 的向量分别计算为 X 在 t 上和 Y 在 u 上的回归系数
p = XTt/(tTt) 和 q = YTu/(uTu)
PLS 模式 A:PLS 模式 A 基于使用相应分数和加载向量对单个块矩阵进行一级排序。在 PLS 模式 A 的每次迭代中,X 和 Y 矩阵都被定义
X = X – tpT和 Y = Y – uqT
这种方法最初是由 Herman Will[24] 设计的,用于对不同数据集(块)之间的关系进行建模。与下面讨论的 PLS 回归方法相比,两个块之间的关系是对称的。因此,与预测目的相反,这种方法似乎适用于对变量集之间的现有关系进行建模。在这种方式上,PLS 模式 A 类似于 CCA。 Wegelin 讨论并比较了这两种方法的特性。
PLS1、PLS2:PLS1(其中一个数据块由单个变量组成)和 PLS2(两个块都是多维的)用作 PLS 回归方法。PLS 的这些变体是最常用的 PLS 方法。X 和 Y 之间的关系是不对称的。做出两个假设:i) 分数向量
(4.1.5)
其中 D 是 (p× p) 对角矩阵,H 表示残差矩阵。预测变量-预测变量关系的不对称假设被转换为一个定义方案,其中预测变量空间,例如X分数向量
X = X − tpT和 Y = Y − ttT TY/(tTt) = Y − tcT
我们认为 在 NIPALS 的第 4 步中没有缩放到单位规范权重向量 c 定义。这种简化方案保证了提取的分数向量的相互正交性
叉积矩阵 X、T、Y 的奇异值对应于样本协方差值 [1, 0]。那么一次提取一个组分的 Deflation 方案也具有以下有趣的特性。在迭代 i +1 时,定义的叉积矩阵 XTY 的第一个奇异值大于或等于迭代 i 时 XTY 的第一个奇异值 [1, 0].此结果也可以应用于 (4.1.3) 由于 (4.1.3) 对应于转置叉积矩阵 XTY 的奇异值分解。特别是,PLS1 和 PLS2 算法不同于 (4.1.3)一步到位。
PLS-SB:如上一段末尾所述,(4.1.3) 将立即找到另一种形式的 PLS。此计算涉及整个叉积矩阵的一系列隐式 rank-one定义。这种形式的 PLS 在 [19] 中使用,根据它表示为 PLS-SB。与 PLS1 和 PLS2 相比,提取的分数向量
SIMPLS:为了避免在 PLS1 和 PLS2 的每次迭代中出现通缩步骤,de Jong [4] 引入了另一种形式的 PLS,称为 SIMPLS。SIMPLS 方法直接找到权重向量
4.1.3 PLS 回归
如上一节所述,PLS1 和 PLS2 可用于解决线性回归问题。将分数向量 t 和 u 之间线性关系的假设 (4.1.5) 与 Y 矩阵的分解相结合,方程 (4.1.1) 可以写为
这定义了方程
(4.1.6)
其中 CT = DQT 现在表示回归系数的 (p×M) 矩阵,F* = HQT +F 是残差矩阵。方程 (4.1.6) 只是使用普通最小二乘回归和正交预测变量 T 对 Y 进行分解。
我们现在考虑正交化分数向量 t,即 TTT = I,以及未缩放到长度为 1 权重向量 c 的矩阵 C = YTT。根据原始预测变量 X 重新定义方程 (4.1.6) 很有用。为此,我们使用关系 [12]
其中 P 是 (1) 中定义的载荷向量矩阵。将此关系代入(4.1.6),我们得到
为了更好地理解这些矩阵方程,它们也以图形表示形式给出:
无花果。 42,其中 B 表示回归系数矩阵
对于最后一个相等,使用 T、U、W 和 P 之间的关系 [12, 10, 17]。请注意,各个分数向量 t 和 u 的不同缩放不会影响 B 矩阵。对于训练数据,PLS 回归的估计值为
对于测试数据,我们拥有
其中 Xt 和 Tt = XtXTU(TTXXTU)−1 分别表示测试数据和分数向量的矩阵
4.1.4 统计
根据残差 Eh 和 Fh 的矩阵,可以按如下方式计算平方和:矩阵上的总平方和、行上的平方和以及列上的平方和。这些平方和可用于构造类似方差的估计器。这些估计量的统计属性尚未经过严格的数学处理,但有些属性可以直观地理解。
Fh 的平方和 是模型好坏的指标。Eh 的平方和表示模型中未使用的 X 块的数量。在某些情况下,X 块的很大一部分不参与模型,这意味着自变量具有意外的属性或较大的错误。
图 4.3.A 变量的统计数据。数据显示为表示每个变量平方和的条形(对于同时构建 X 和 Y 变量的模型;对于仅构建 X 变量的预测)。在 0 个 PLS 分量之后,数据采用均值中心和方差缩放形式。随着 PLS 组件数量的增加,每个变量中的信息都会耗尽。阴影条显示“特殊”变量的行为,该变量对模型的影响很小。图 4.3.B. 对象 (样本) 的统计数据。数据显示为条形,表示每个对象的平方和。随着 PLS 组件数量的增加,每个对象的平方和会减小。阴影条显示 “特殊” 对象的行为,可能是异常值。
列上的平方和表示变量对特定组件的重要性。行上的平方和表示对象与模型的拟合程度。这可以用作异常值检测标准。图中给出了插图。A 用于变量统计,如图 1 所示。 B 用于样本统计。更多相关信息可以在 S. would 等人的文章中找到,其他地方引用。
PLS 的一个优点是可以计算每个组件的这些统计数据。这是遵循模型构建过程的理想方法。可以跟踪这些统计数据的演变(如图 2 所示)。A 和 B),因为计算的分量越来越多,因此可以了解不同对象和变量如何拟合。结合模型维数标准,统计量可用于估计哪些对象和变量对模型的主要贡献,哪些对象和变量对残差有主要贡献.
4.1.5 参考
T. 阿尔莫伊.当只有几个组件相关时,对预测模型进行比较的模拟研究。计算统计与数据分析, 21:87–107, 1996.
M. Barker 和 W.S. Rayens。判别的偏最小二乘法。化学计量学杂志,17:166–173,2003 年。
NA Butler 和 MC Denham。偏最小二乘回归的特殊收缩特性。皇家统计学会杂志:B,62:585–593,2000 年。
S. de Jong.SIMPLS:偏最小二乘回归的替代方法。化学计量学和智能实验室系统,18:251-263,1993 年。
S. de Jong、BM Wise 和 NL Ricker。规范偏最小二乘法和连续体幂回归。化学计量学杂志,15:85-100,2001 年。
I.E. Frank 和 J.H. Friedman。一些化学计量学回归工具的统计视图。技术计量学,35:109–147,1993 年。
C. Goutis.偏最小二乘法可生成收缩估计器。统计年鉴,24:816-824,1996 年。
I.S. 赫兰德。偏最小二乘回归的一些理论方面。化学计量学和智能实验室系统,58:97-107,1999 年。
AE Hoerl 和 RW Kennard。Ridge 回归:非正交问题的偏差估计。技术计量学,12:55-67,1970 年。
AH ̈oskuldsson.PLS 回归方法。化学计量学杂志,2:211-228,1988 年。
O.C. Lingjærde 和 N. Christophersen。偏最小二乘法的收缩结构。斯堪的纳维亚统计杂志,27:459-473,2000 年。
R. 曼恩。用于多变量校准的两种偏最小二乘算法的分析。化学计量学和智能实验室系统,2:187-197,1987 年。
KV Mardia、JT Kent 和 JM Bibby。 多变量分析。学术出版社,1997 年。
M. Martens 和 H. Martens。偏最小二乘回归。在 JR Piggott 编辑的《食品研究统计程序》中,第 293-359 页。Elsevier Applied Science,伦敦,1986 年。
WF 马西。探索性统计研究中的主成分回归。美国统计协会杂志,60:234-256,1965 年。
DV Nguyen 和 DM Rocke。使用微阵列基因表达数据通过偏最小二乘法对肿瘤进行分类。生物信息学,18:39-50,2002 年。
SR ̈annar、F. Lindgren、P. Geladi 和 S. Wold。一种 PLS 内核算法,适用于具有许多变量和较少对象的数据集。第 1 部分:理论和算法。化学计量学和智能实验室系统,8:111-125,1994 年。
R. Rosipal、LJ Trejo 和 B. Matthews。用于线性和非线性分类的内核 PLS-SVC。在第 20 届机器学习国际会议论文集中,第 640-647 页,华盛顿特区,2003 年。
PD Sampson、AP Streissguth、HM Barr 和 FL Bookstein。产前酒精的神经行为影响:第二部分。偏最小二乘法分析。神经毒理学和四联症,11:477-491,1989 年。
B. Sch ̈olkopf 和 AJ Smola。 使用内核学习 – 支持向量机、正则化、优化等。麻省理工学院出版社,2002 年。
M. Stone 和 RJ Brooks。连续体回归:交叉验证的顺序构建预测,包括普通最小二乘法、部分最小二乘法和主成分回归。皇家统计学会杂志:B,52:237-269,1990 年。
L.E. Wangen 和 BR Kowalsky。用于研究复杂化学系统的多块偏最小二乘算法。化学计量学杂志,3:3-20,1989 年。
J. Westerhuis、T. Kourti 和 J. MacGregor。多块和分层 PCA 和 PLS 模型的分析。化学计量学杂志,12:301-321,1998 年。
H. 会。具有潜在变量的路径模型:NIPALS 方法。在 H.M. Blalock 等人编辑的《定量社会学:数学和统计模型构建的国际视角》中,第 307-357 页。学术出版社,1975 年。
H. 会。软建模:基本设计和一些扩展。在 J.-K.J ̈oreskog 和 H. Wold 主编,《间接观察下的系统》,第 2 卷,第 1-53 页。北荷兰,阿姆斯特丹,1982 年。
H. 会。偏最小二乘法。在 S. Kotz 和 N.L. Johnson 主编的《统计科学百科全书》中,第 6 卷,第 581-591 页。John Wiley & Sons,1985年。
4.2 NIPALS 和 SIMPLS 算法
本节继续详细介绍两种最流行的 PLS 方法(NIPALS 和 SIMPLS)。
4.2.1 压制ALS
在本节中,矩阵的转置由上标
4.2.1.1 Theory
本节中描述的 PLS 算法将称为“标准”PLS算法。该研究已在别处详细介绍[3-6]。有关PLS 的一些替代实现,请参见 refs。 7-9.标准 PLS 的第一步是将数据矩阵 X 和 Y 居中,分别给出 X0 和 Y0。然后 逐个因子计算一组 A 正交 X 区组因子得分 T = [t 1,..., tA] 和伴生 Y 区组因子得分 U= [u 1, . . . , u A]。第一个 PLS 因子 t1 和 u1 是中心变量的加权和:t1 = X0w 1,u 1 = Y0q1分别。通常,权重是通过 NIPALS 算法确定的。这是迭代序列:
(4.2.1) - (4.2.4)
Thr2oughout this paper 的符号
一旦获得第一个 X 块因子 t1,就可以继续压缩数据矩阵。这将产生新的数据集 X1 和 Y1,它们是在 t1 上回归所有变量后获得的残差矩阵
(4.2.5) - (4.2.6)
方程 4.2.5 可以改写为
(4.2.7)
其中 p1 表示因子 t1 对 X 变量的载荷向量
(4.2.8)
这些载荷描述了原始 X 变量与第一个 PLS 因子 t1 相关的强度,同样,方程 4.2.6 可以改写为
(4.2.9)
标量 b1 是通过它们的潜在变量传递的两个数据集之间所谓的内部关系的估计回归 c oefficient
(4.2.10) - (4.2.11)
Y 因子权重 q1 和分数 u1 以及内部关系系数 b1 可能有助于解释数据中的潜在结构。 但是,u 分数对于建立多元线性回归模型 Y = f(X) 并不是必需的。
现在,NIPALS 算法继续重复上述步骤,应用方程 4.2.l --4.2.11,所有索引都加高 1。一个从 X1 和 Y1 开始,并标识 第二个维度 a = 2 的 w2、t2、q2、u2 b2 和 p2,类似于第一个维度尺寸。由于 t1 已被投影出系统之外,因此任何新的线性组合 t2 = X1w2 或 u2 =Y1q2 都与 t1 正交 construction 的。当应用于召回率数据集 X1 和 Y1 时,选择归一化权重 w2 和 q2,以最大化结果分数向量 t2和 u2 之间的协方差.
接下来,通过投影 t2 进一步耗尽数据矩阵,得到 X2 和 Y2,并分析第三个维度。整个过程将继续进行,直到确定 A 因子。选择正确的 A 个因子数字是预测建模的关键步骤。然而,在本文中,重点是给定任何维度 A 的 PLS 模型的替代估计.
4.2.1.2 NIPALS-PLS factors in terms of original variables
4.2.1.2 原始变量中的 NIPALS-PLS 因子
Each of the weight vectors wa, a = 2, 3, . . . , A, used for defining the associated factor scores, applies to a different matrix of residuals Xa-1
用于定义关联因子分值的每个权重向量 waa = 2,3,. . . . , A 适用于不同的残差矩阵 Xa-1,
(4.2.12)
and not to the original centered data X0. This obscures the interpretation of the factors, mainly because one looses sight of what is in the depleted matrices Xa, as one goes to higher dimensions, a>=1. Some X variables are used in the first factors, others only much later. The relation between factors and variables is better displayed by the loadings pa (a = 1, 2, . . . , A). Indeed, the weight vectors, collected in the p x A matrix W, have found less use in interpreting PLS regression models than the loading vectors. It is therefore advantageous to re-express the NIPALS-PLS factors ta in terms of the original centered data X0, say
而不是原始居中数据 X0。这掩盖了对因子的解释,主要是因为当一个人进入更高的维度 a>=1 时,人们忘记了耗尽矩阵 Xa 中的内容。一些 X 变量在第一个因子中使用,而其他变量则是在很久以后才使用的。因子和变量之间的关系由载荷 pa (a = 1,2,. . . , A) 更好地显示。事实上,收集在 p x A 矩阵 W 中的权重向量在解释 PLS 回归模型方面的用途比加载向量少。因此,用原始居中数据X0 重新表示 NIPALS-PLS 因子 ta 是有利的,比如
(4.2.13)
or, collecting the alternative weight vectors in a p x A matrix R=[r1,r2, . . . , rA],
或者,在 p x A 矩阵 R=[r 1,r2. . . , rA] 中收集替代权重向量,
(4.2.14)
The factor scores T computed via NIPALS-PLS, i.e. via depleted X matrices, can be expressed exactly as linear combinations of the centered X variables, since all deflated matrices Xa and factor scores ta, a = 1, 2,. . . , A, lie in the column space of X0. Thus, R can be computed from the regression of T on X0
通过 NIPALS-PLS(即通过耗尽的 X 矩阵)计算的因子分数 T 可以完全表示为居中 X 变量的线性组合 ,因为所有收缩矩阵 Xa 和因子分数 ta, a = 1,2,. . . , A 位于 X0 的列空间中。因此,可以根据 T 在 X0 上的回归计算 R:
(4.2.15)
where P=[p1, p2, ... , pAl is the (p x A) matrix of factor loadings and the superscript - indicates any generalized inverse and + indicates the unique Moore-Penrose pseudo-inverse [16]. We also have the relation
其中 P=[p1p2 ... , pAl 是因子载荷的 (p x A) 矩阵,上标 - 表示任何广义逆矩阵,+ 表示唯一的 Moore-Penrose 伪逆矩阵 [16]。我们也有.
(4.2.16)
Since
因为
(4.2.17)
which follows from the observation that R and W share the same column space and that P’R should be equal to the identity matrix.
从观察到 R 和 W 共享相同的列空间并且 P'R 应该等于单位矩阵得出结论。
The explicit computation of the (pseudo-)inverse matrices in Eqns. 4.2.15 and 4.2.17 detracts somewhat from the PLS-NIPALS algorithm, that is otherwise very straightforward. Hiiskuldsson [2] gives the following recurrent relation
方程 4.2.15 和 4.2.17 中(伪)逆矩阵的显式计算在一定程度上减损了 PLS-NIPALS 算法,否则该算法非常简单。Hiiskuldsson [2] 给出了以下递归关系.
(4.2.18)
starting with r1 = w1 , However, this relation depends on the tridiagonal structure of P’P and is only correct for univariate Y =y (m = 1, PLS1). Eqns. 4.2.19 and 4.2.20 form a set of updating formulas that is generally applicable:
从 r1 = w1 开始,但是,这种关系取决于 P'P 的三对角线结构 ,并且仅对单变量 Y =y(m = 1, PLS1) 正确。方程 4.2.19 和 4.2.20 构成了一组普遍适用的更新公式:
(4.2.19) - (4.2.20)
starting with G1 = Ip [19]. Note that the vectors ra are not normalized, in contrast to the weight vectors wa , Thus in Eqn. 4.2.13, neither ta nor ra are normalized
从 G1 = Ip [19] 开始。请注意,向量 ra 没有被归一化,与权重向量 wa 相反,因此在方程 4.2.13 中,tanor ra 都没有被归一化.
4.2.1.3 Prediction
4.2.1.3 预测
The main application of PLS modelling in multivariate calibration is to use the final regression model for predictive purposes. For prediction from a newly measured row vector x*, one extracts factor scores
PLS 建模在多变量校准中的主要应用是将最终回归模型用于预测目的。对于从新测量的行向量 x* 进行预测,可以提取因子分数
(4.2.21) - (4.2.24)
When the R weights are available, a closed form multiple regression-type prediction model can be obtained more readily:
当 R 权重可用时,可以更容易地获得封闭式多元回归类型的预测模型:
(4.2.25)
Here, BPLS = Rdiag(b)Q’ = W(P’W)-1diag(b)Q’ is the p x m set of biased multivariate regression coefficients obtained via PLS regression.
这里,BPLS = Rdiag(b)Q' = W(P'W)-1diag(b)Q' 是通过 PLS 回归获得的有偏多变量回归系数的 p x m 集。
4.2.2 SIMPLS
4.2.2 辛普尔斯
4.2.2.1 Theory
4.2.2.1 理论
Our alternative approach to the PLS method is, in some sense, opposite to standard PLS: first we specify our objective, then derive an optimizing criterion, next we try and optimize the criterion and, finally, we build an algorithm. This is the classical approach in multivariate statistics, e.g. in principal component analysis (PCA), discriminant analysis and canonical correlation analysis.
从某种意义上说,我们对 PLS 方法的替代方法与标准 PLS 相反:首先我们指定目标,然后推导出优化标准,然后我们尝试优化标准,最后,我们构建一个算法。这是多元统计中的经典方法,例如在主相关分析 (PCA)、判别分析和典型相关性分析中。
Our objective is to find a predictive linear model
我们的目标是找到一个预测线性模型
The modification we propose leads to the direct computation of the weights R. In this way we avoid the construction of deflated data matrices X1,...,XA and Y1,...,YA and by-pass the calculation of weights W. The explicit computation of matrix inverses as in Eqns. 4.2.15 or 4.2.17 is also circumvented. The newly defined R is similar, but not identical, to the ‘standard’ R introduced in Eqn. 4.2.14. In fact, our new R contains normalized weight vectors just as W in standard PLS.
我们提出的修改导致权重 R 的直接计算。通过这种方式,我们避免了构建压缩的数据矩阵 X1,...XA 和Y1,...,YA 并绕过权重 W 的计算。矩阵逆的显式计算,如 Eqns 中所示。 4.2.15 或 4.2.17 也被规避了。新定义的 R 与 Eqn 中引入的“标准”R 相似,但不完全相同。4.2.14.事实上,我们的新 R 包含归一化权重向量,就像标准 PLS 中的 W 一样。
Thus, the task we face is to compute weight vectors ra and qa, (a = 1, … , A), which can be applied directly to the centered data:
因此,我们面临的任务是计算权重向量 ra 和 qa,(a = 1,..., A),该函数可以直接应用于居中数据:
(4.2.26)
(4.2.27)
The weights should be determined such as to maximize the covariance of score vectors ta and ua under some constraints. (The term covariance will be used somewhat loosely and interchangeably with the terms cross-product or inner product; they merely differ by a scalar factor n - 1). Specifically, four conditions control the solution:
应确定权重,以便在某些约束下最大化分数向量 ta 和ua 的协方差 。(术语协方差将与术语叉积或内积互换使用;它们仅在标量因子上有所不同 n - 1) 的具体来说,有四个条件控制解决方案:
(1) maximization of covariance:
(1) 协方差最大化:
(2) normalization of weights ra
(2) 权重 ra 的归一化:
(3) normalization of weights qa
(3) 权重 qa 的归一化:
(4) orthogonality of t scores:
(4) T 分数的正交性:
Without the last constraint there is only one, straightforward solution: r1 and q1 are the first left and right singular vectors of the p x m cross-product matrix
如果没有最后一个约束,只有一个简单的解:r1 和 q1 是 p x m 叉积矩阵的第一个左和右奇异向量
(4.2.28)
for a > b. Here, pb is a loading vector expressing the relation between the original X variables and the b-th PLS factor (cf. Eqn. 4.2.8). Eqn. 4.2.28 stipulates that any new weight vector ra (a > 1) should be orthogonal to all preceding loading vectors, i.e., to the columns of Pa-1 =[p1, p2,. . . ,pa-1]. Letting
对于 %3E b.这里,pb 是一个载荷向量,表示原始 X 变量和第 b 个 PLS 因子之间的关系(参见方程 4.2.8)。方程 4.2.28 规定,任何新的权重向量 ra (a > 1) 都应该与所有前面的载荷向量正交,即与 Pa-1 =[p1 的列正交p2,. . . ,pa-1]。让
(4.2.29)
we therefore demand
因此,我们要求
(4.2.30)
Eqns. 4.2.29 and 4.2.30 concisely account for the fourth orthogonality restriction. The solution for qa and ra is now given by the first pair of singular vectors from the singular value decomposition (SVD) of S0 projected on a subspace orthogonal to Pa-1, i.e. the SVD of
方程 4.2.29 和 4.2.30 简明扼要地解释了第四个正交性限制。qaand ra 的解现在由 S0 的奇异值分解 (SVD) 中的第一对奇异向量给出,该向量投影在与 Pa-1 正交的子空间上,即。SVD
(4.2.31)
4.2.2.2 SIMPLS 算法
从其前身 Sa 计算 Sa+1 是权宜之计。为了实现在 P 的柱空间上的投影,将作为一系列正交投影进行。为此,我们需要 Pa 的正交基,比如 Va =[v1, v2,..., va]。 Va 可以从 Pa 的 GramSchmidt 正交化中获得,即
(4.2.32)
起始于
(4.2.33)
第一个 a 加载向量跨越的子空间的投影,
(4.2.34)
The main difference with the standard PLS algorithm is that the deflation process applies to the cross-product S0 and not to the larger data matrices X0 and Y0. The first pair of singular vectors of each Sa may be calculated using the iterative power method. This has the advantage of extracting only the pair of singular vectors of interest, i.e., the ones corresponding to the dominant singular value, which equals the maximum attainable covariance. Usually, the number of Y variables is smaller than the number of X variables, m < p. For example, in multivariate calibration, p may be a few hundreds and m may be quite low, say < 5. Then it will be efficient to calculate qa as the dominant eigenvector of the small m x m symmetric matrix
与标准 PLS 算法的主要区别在于,通缩过程适用于叉积 S0,而不是较大的数据矩阵 X0 和 Y0。每个 Sa 的第一对奇异向量可以使用迭代幂法计算。这样做的优点是只提取感兴趣的奇异向量对,即对应于主要奇异值的向量,它等于可达到的最大协方差。通常,Y 变量的个数小于 X 变量的个数 m < p。例如,在多变量校准中,p 可能为几百,而 m 可能非常低,例如< 5。然后,将 qa 计算为小 m x m 对称矩阵的主特征向量将是有效的
(4.2.35)
For univariate Y( = y), Sa-1( = sa-1) is a vector of covariances of y with the X variables, hence
对于单变量 Y( = y),Sa-1( = sa-1) 是 y 与 X 变量的协方差向量,因此
Another simplification concerns the centering of X and Y. It is not necessary to carry out this very first step of the standard deflation process: S0 may be computed as
另一个简化涉及 X 和 Y 的中心。没有必要执行标准通缩过程的第一步:S0 可以计算为
It may also be useful to orthogonalize the ua scores to the preceding t scores, t1, . . . , ta-1. Again this is not necessary, but it removes some collinearity among the u scores, and it provides for equivalence with the standard PLS results as well as for a better interpretation. The Appendix gives a more elaborate pseudo-code incorporating all of these improvements. We have coined the name SIMPLS for our PLS algorithm, since it is a straightforward implementation of a statistically inspired modification of the PLS method according to the simple concept. Detailed codes of the SIMPLS algorithm for use with MATLAB [16] or SAS/IML [17] are available on request. The algorithm can be extended to deal with missing values in the same approximate way as done in the standard NIPALS procedure, i.e., accumulating sums of products over available data and correcting such sums for the number of entries.
将 ua 分数与前面的 t 分数 t1, . . . , ta-1 正交化也可能很有用。同样,这不是必需的,但它消除了 u 分数中的一些一致性,并且它与标准 PLS 结果等效以及提供更好的解释。附录给出了一个更详细的伪代码,其中包含了所有这些改进。我们为我们的 PLS 算法创造了 S IMPL S 这个名字,因为它是根据简单的概念对 PLS 方法进行统计启发的修改的直接实现。可根据要求提供用于 MATLAB [16] 或 SAS/IML [17] 的 SIMPLS 算法的详细代码。该算法可以扩展为以与标准 NIPALS 程序中相同的近似方式处理缺失值,即,在可用数据上累积乘积总和,并针对条目数校正此类总和。
4.2.2.3 Fitting, prediction and residual analysis
4.2.2.3 拟合、预测和残差分析为
For the development of the theory and algorithm of SIMPLS it was convenient to choose normalized weight vectors ra. This choice, however, is in no way essential. We will now switch to a normalization of the scores ta instead, since this considerably simplifies some of the ensuing formulas. The code given in the Appendix already uses the latter normalization scheme. Thus we redefine
对于 SIMPLS 理论和算法的发展,选择归一化权重向量 ra 很方便。然而,这种选择绝不是必需的。我们现在将切换到分数 ta 的归一化,因为这大大简化了一些后续公式。附录中给出的代码已经使用了后一种规范化方案。因此,我们重新定义
Predicted values of the calibration samples are now obtained as
校准样品的预测值现在通过
(4.2.36)
giving
给
(4.2.37)
with non-normalized Y loadings
具有非归一化 Y 载荷
The variation of X around the mean
X 围绕平均值的变化
(4.2.38)
The total sum of squares of X
X 的总平方和 ,
n x n hat 矩阵 [19] H 由下式给出
(4.2.39)
即,就好像在模型构建过程中遗漏了观察结果一样。方程。 4.2.39 借用自普通最小二乘回归理论 [18],在那里它是精确的。然而,在 PLS 回归 [25] 的上下文中,它只是一个快速而肮脏的近似,因为 T 不是一个固定的设计矩阵。
对于新对象,我们采用简单的预测公式
(4.2.40)
因子分数
4.2.2.4 详细的 SIMPLS 算法
INPUTn x p 矩阵 X,
n X m 矩阵 Y,
因子数 A.
输出:
4.2.3 参考
R. Manne,用于多变量校准的两种偏最小二乘算法分析,化学计量学和智能实验室系统,2 (1987) 283-290。
A. Hiiskuldsson,PLS 回归方法,化学计量学杂志,2 (1988) 211-228。
S. Would, C. Albano, W.J. Dunn III, K. Esbensen, S. Hellberg, E. Johansson 和 M. SjGstrGm,模式识别:在多变量数据中查找和使用规律,载于 H. Martens 和 H. Russwurm, Jr.(编辑),《食品研究和数据分析》,应用科学出版社,伦敦,1983 年,第 147-188 页。
P. Geladi 和 B.R. Kowalski,偏最小二乘回归:教程,Analytica Chimica Acta,185 (1986) 1-17。
T. Naes、C. Irgens 和 H. Martens,用于校准 NIR 仪器的线性统计方法的比较,应用统计学,35 (1986) 195-206。
D.M. Haaland 和 E.V. Thomas,用于光谱分析的偏最小二乘法。1. 与其他定量校准方法和定性信息提取的关系,分析化学,60 (1988)1193-1202。
S. wold、A. Ruhe、H. Wold 和 W.J. Dunn III,线性回归中的共线性问题。广义逆的偏最小二乘法 (PLS) 方法,SIAM 科学与统计计算杂志,5 (1984) 735-743。
T. Naes 和 H. Martens,多共线数据预测方法的比较,统计中的通信 - 模拟和计算,14 (1985) 545-576。
A. Lorber 和 B.R. Kowalski,关于使用偏最小二乘法进行多变量校准的说明,应用光谱学,42 (1988) 1572-1574。
C.L. Lawson 和 R.J. Hanson,《解决最小二乘问题》,Prentice-Hall,新泽西州恩格尔伍德悬崖,1974 年。
S.R. Searle,线性模型,Wiley,纽约,1971 年。
H. Martens 和 T. Nazs,通过数据压缩进行多变量校准,P.C. Williams 和 K. Norris(编辑),农业和食品工业中的近红外技术,美国谷物化学家协会,明尼苏达州圣保罗,1987 年,第 57-87 页。
I.S. Helland,关于偏最小二乘回归的结构,统计学通讯 - 模拟和计算,17 (1988) 581-607。
A. HSskuldsson,建模中的 H 原则及其在化学计量学中的应用,化学计量学和智能实验室系统,14 (1992) 139-153。
C. Paige 和 M.A. Saunders,LSQR:稀疏线性方程和稀疏最小二乘法的算法,ACM 数学软件汇刊,8 (1982) 43-47,195-209。
386 MATLABTM 用户指南,The Math Works Inc.,马萨诸塞州南纳蒂克,1989 年。
SAS/IML '.u 个人计算机用户指南,第 6 版,SAS Institute Inc.,北卡罗来纳州卡里,1985 年。
A. Phatak、P.M. Reilly 和 A. Penlidis,《偏最小二乘回归中的区间估计方法》,Analyrica Chimica Acta,出版中。
S. Weisberg,应用回归分析,Wiley,纽约,第 2 版,1985 年。
T. Naes 和 H. Martens,NIR 分析中的主成分回归:观点、背景细节和成分选择,化学计量学杂志,2 (1988) 155-167。
4.3 标准偏最小二乘法的编程方法
4.3.1 Cross 验证
学习预测函数的参数并在相同的数据上对其进行测试是一个方法论上的错误:一个模型如果只是重复它刚刚看到的样本的标签,就会得到满分,但无法预测到尚未看到的数据上的任何有用信息。这种情况称为 过拟合。为避免这种情况,在执行(监督式)机器学习实验时,通常的做法是将部分可用数据作为 测试集X_test,y_test。请注意,“实验”一词并不仅仅是表示学术用途,因为即使在商业环境中,机器学习通常也是从实验开始的。
在评估估计器的不同设置(“超参数”)时,仍然存在测试集过拟合的风险,因为可以调整参数,直到估计器达到最佳性能。这样,有关测试集的知识可以 “泄漏” 到模型中,并且评估指标不再报告泛化性能。为了解决这个问题,数据集的另一部分可以被保留为所谓的 “验证集”:在训练集上进行训练,然后在验证集上进行评估,当实验似乎成功时,可以在测试集上进行最终评估。
然而,通过将可用数据分为三组,我们大大减少了可用于学习模型的样本数量,并且结果可能取决于对(训练、验证)集的特定随机选择。
此问题的解决方案是一个称为 交叉验证 (简称 CV)的过程。测试集仍应保留以供最终评估,但在执行 CV 时不再需要验证集。
4.3.1.1 i.i.d. 数据的交叉验证迭代器
假设某些数据是独立且同分布的 (i.i.d.) 假设所有样本都源于相同的生成过程,并且假设生成过程没有过去生成样本的记忆。
在这种情况下,可以使用以下交叉验证器。
注意:虽然 i.i.d. 数据是机器学习理论中的常见假设,但在实践中很少成立。如果知道样本是使用时间依赖过程生成的,那么使用时间序列感知交叉验证方案会更安全。同样,如果我们知道生成过程具有组结构(来自不同受试者、实验、测量设备收集的样本),那么使用分组交叉验证会更安全.
4.3.1.1.1 K 折叠
在称为 k 折 CV 的基本方法中,训练集被分成 k 个较小的集合(其他方法如下所述,但通常遵循相同的原则)。对于每个 k“folds”,都遵循以下过程:
(1).使用 k-1个折叠作为训练数据来训练模型;
(2).生成的模型将在数据的其余部分上进行验证。
然后,k 折交叉验证报告的性能度量是循环中计算的值的平均值。这种方法的计算成本可能很高,但不会浪费太多数据(就像修复任意验证集时的情况一样),这在样本数量非常少的逆向推理等问题中是一个主要优势。
KFold 将所有样本分成k组样本,称为折叠(如果k=n,这相当于Leave One Out策略),大小相等(如果可能)。预测函数是使用 k-1 次折叠学习的,省略的折叠用于测试。
对具有 4 个样本的数据集进行 2 倍交叉验证的示例:
>>> 将numpy导入为np
>>> 来自sklearn.model_selectionimport KFold
>>> X = [“a”, “b”, “c”, “d”]
>>> kf = KFold(n_splits=2)
>>> 用于火车,以 kf 为单位进行测试。split(X) 的
... print(“%s%s”% (train, test))
[2 3][0 1]
[0 1][2 3]
以下是交叉验证行为的可视化效果。请注意,KFold不受类或组的影响。
图 4.4 每个 fold 由两个数组组成:第一个与 训练集相关,第二个与 测试集相关。因此,可以使用 numpy 索引创建训练/测试集:
>>> X = np.array([[0., 0.], [1., 1.], [-1., -1.], [2., 2.]])
>>> X = np.array([[0., 0.], [1.、1.], [-1., -1.], [2.,2.]])
>>> y = np.array([0, 1, 0, 1])
>>> y = np.数组([0, 1, 0, 1])
>>> X_train, X_test, y_train, y_test = X[train], X[test], y[train], y[test]
>>> X_train、X_test、y_train、y_test = X[train]、X[test]、y[train]、y[test]
4.3.1.1.2 Repeated K-fold
4.3.1.1.2 重复 K 折
RepeatedKFold repeats K-Fold n times. It can be used when one requires to run KFold n times, producing different splits in each repetition
RepeatedKFold重复 K-Fold n 次。当需要运行KFold n 次时,可以使用它,每次重复产生不同的拆分
Example of 2-fold K-Fold repeated 2 times:
重复 2 次的 2 倍 K-Fold 示例:
>>> import numpy as np
>>> 将numpy导入为np
>>> from sklearn.model_selection import RepeatedKFold
>>> 来自sklearn.model_selectionimport RepeatedKFold
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> X = np.数组([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> random_state = 12883823
>>> rkf = 重复KFold(n_splits=2, n_repeats=2, random_state=random_state)
>>> 用于火车,在 rkf 中测试。split(X) 的
... print(“%s%s”% (train, test))
[2 3][0 1]
[0 1][2 3]
[0 2][1 3]
[1 3][0 2]
4.3.1.1.3 留一 (LOO)
LeaveOneOut (或 LOO)是一种简单的交叉验证。每个学习集都是通过获取除一个样本之外的所有样本来创建的,测试集是遗漏的样本。因此,对于 n 个样本,我们有 n 个 不同的训练集和 n 个 不同的测试集。此交叉验证过程不会浪费太多数据,因为仅从训练集中删除了一个样本:
>>> 从sklearn.model_selection导入 LeaveOneOut
>>> X = [1, 2, 3, 4]
>>> loo = LeaveOneOut()
>>> 用于火车,在厕所进行测试。split(X) 的
... print(“%s%s”% (train, test))
[1 2 3][0]
[0 2 3][1]
[0 1 3][2]
[0 1 2][3]
LOO 用于模型选择的潜在用户应权衡一些已知的注意事项。与 k 折交叉验证相比,从 n 个样本而不是 k 个模型构建 n 个模型,其中 n>k.此外,每个样本都是在 n-1 个样本而不是 (k-1)n/k 上训练的。在这两种情况下,假设 k 不是太大且 k<n,则 LOO 的计算成本高于 k 折叠交叉验证。
就准确性而言,LOO 通常会导致高方差作为测试误差的估计量。直观地说,由于 n 个样本中的 n-1 个用于构建每个模型,因此 由折叠构建的模型彼此几乎相同,并且与从整个训练集构建的模型几乎相同。
但是,如果相关训练大小的学习曲线陡峭,则 5 倍或 10 倍交叉验证可能会高估泛化误差。
作为一般规则,大多数作者和经验证据表明,5 倍或 10 倍交叉验证应优于 LOO.
4.3.1.1.4 省略 P (LPO)
LeavePOut 与 LeaveOneOut 非常相似,因为它通过从完整集中删除 p 个样本来创建所有可能的训练/测试集。对于 n 个样本,这将生成
具有 4 个样本的数据集上的 Leave-2-Out 示例:
>>> from sklearn.model_selection import LeavePOut
>>> X = np.一(4)
>>> lpo = LeavePOut(p=2)
>>> 用于火车,在 lpo 中进行测试。split(X) 的
... print(“%s%s”% (train, test))
[2 3][0 1]
[1 3][0 2]
[1 2][0 3]
[0 3][1 2]
[0 2][1 3]
[0 1][2 3]
4.3.1.1.5 Leave P Out (LPO) 随机排列交叉验证又名 Shuffle & Split
ShuffleSplit 迭代器将生成用户定义的独立训练/测试数据集拆分数量。样本首先被随机排列,然后被分成一对 train 和 test 集。
可以通过显式地为 random_state 伪随机数生成器设定种子来控制结果可重复性的随机性。
下面是一个用法示例:
>>> 从sklearn.model_selectionimport ShuffleSplit
>>> X = np.arange(10)
>>> X = np.阿兰吉(10)
>>> ss = ShuffleSplit(n_splits=5, test_size=0.25,
>>> ss = ShuffleSplit(n_splits=5, test_size=0.25,
... random_state=0)
... random_state=0)
>>> for train_index, test_index in ss.split(X):
>>> 表示 train_index,test_index 在 ss 中。split(X) 的
... print("%s %s" % (train_index, test_index))
... print(“%s%s”% (train_index, test_index))
[9 1 6 7 3 0 5] [2 8 4]
[9 1 6 7 3 0 5][2 8 4]
[2 9 8 0 6 7 4] [3 5 1]
[2 9 8 0 6 7 4][3 5 1]
[4 5 1 0 6 9 7] [2 3 8]
[4 5 1 0 6 9 7][2 3 8]
[2 7 5 8 0 3 4] [6 1 9]
[2 7 5 8 0 3 4][6 1 9]
[4 1 0 6 8 9 3] [5 2 7]
[4 1 0 6 8 9 3][5 2 7]
Here is a visualization of the cross-validation behavior. Note that ShuffleSplit is not affected by classes or groups.
以下是交叉验证行为的可视化效果。请注意, ShuffleSplit 不受类或组的影响。
Fig.4.5 ShuffleSplit is thus a good alternative to KFold cross validation that allows a finer control on the number of iterations and the proportion of samples on each side of the train / test split.
因此,图 4.5 ShuffleSplit 是 KFold 交叉验证的一个很好的替代方案,它允许更精细地控制迭代次数和训练/测试拆分每侧的样本比例。
4.3.1.2 Cross-validation iterators with stratification based on class labels.
4.3.1.2 基于类标签的分层的交叉验证迭代器。
Some classification problems can exhibit a large imbalance in the distribution of the target classes: for instance there could be several times more negative samples than positive samples. In such cases it is recommended to use stratified sampling as implemented in StratifiedKFold and StratifiedShuffleSplit to ensure that relative class frequencies is approximately preserved in each train and validation fold.
某些分类问题可能在目标类的分布中表现出很大的不平衡:例如,负样本可能比正样本多几倍。在这种情况下,建议使用在 StratifiedKFold 和 StratifiedShuffleSplit 中实现的分层采样,以确保在每个训练和验证折叠中大致保留相对类频率。
4.3.1.2.1 Stratified k-fold
4.3.1.2.1 分层 k 折
StratifiedKFold is a variation of k-fold which returns stratified folds: each set contains approximately the same percentage of samples of each target class as the complete set.
StratifiedKFold 是 k-fold 的一种变体,它返回分层折叠:每个集合包含与完整集合大致相同的每个目标类的样本百分比。
Example of stratified 3-fold cross-validation on a dataset with 10 samples from two slightly unbalanced classes:
对具有来自两个略微不平衡的类的 10 个样本的数据集进行分层 3 折交叉验证的示例:
>>> from sklearn.model_selection import StratifiedKFold
>>> 从sklearn.model_selectionimport StratifiedKFold
>>> X = np.ones(10)
>>> X = np.一(10)
>>> y = [0, 0, 0, 0, 1, 1, 1, 1, 1, 1]
>>> y = [0, 0, 0, 0, 1, 1, 1 , 1, 1]
>>> skf = StratifiedKFold(n_splits=3)
>>> skf = 分层 KFold(n_splits=3)
>>> for train, test in skf.split(X, y):
>>> 用于火车,在 SKF 中测试。split(X, y):
... print("%s %s" % (train, test))
... print(“%s%s”% (train, test))
[2 3 6 7 8 9] [0 1 4 5]
[2 3 6 7 8 9][0 1 4 5]
[0 1 3 4 5 8 9] [2 6 7]
[0 1 3 4 5 8 9][2 6 7]
[0 1 2 4 5 6 7] [3 8 9]
[0 1 2 4 5 6 7][3 8 9]
Here is a visualization of the cross-validation behavior.
以下是交叉验证行为的可视化效果。
Fig 4.6 RepeatedStratifiedKFold can be used to repeat Stratified K-Fold n times with different randomization in each repetition.
图 4.6 RepeatedStratifiedKFold 可用于重复分层 K-Fold n 次,每次重复的随机化不同。
4.3.1.2.2 Stratified Shuffle Split
4.3.1.2.2 分层随机拆分
StratifiedShuffleSplit is a variation of ShuffleSplit, which returns stratified splits, i.e which creates splits by preserving the same percentage for each target class as in the complete set.
StratifiedShuffleSplit 是 ShuffleSplit 的变体,它返回分层的拆分,即通过为每个目标类保留与完整集合中相同的百分比来创建拆分。
Here is a visualization of the cross-validation behavior.
以下是交叉验证行为的可视化效果。
Fig.4.7
4.3.1.3 Cross-validation iterators for grouped data.
4.3.1.3 分组数据的交叉验证迭代器。
The i.i.d. assumption is broken if the underlying generative process yield groups of dependent samples.
如果底层生成过程产生依赖样本组,则 i.i.d. 假设被打破。
Such a grouping of data is domain specific. An example would be when there is medical data collected from multiple patients, with multiple samples taken from each patient. And such data is likely to be dependent on the individual group. In our example, the patient id for each sample will be its group identifier.
此类数据分组是特定于域的。例如,当从多个患者那里收集了医疗数据,并从每个患者那里采集了多个样本时。而这些数据很可能取决于单个群体。在我们的示例中,每个样本的患者 ID 将是其组标识符。
In this case we would like to know if a model trained on a particular set of groups generalizes well to the unseen groups. To measure this, we need to ensure that all the samples in the validation fold come from groups that are not represented at all in the paired training fold.
在这种情况下,我们想知道在一组特定组上训练的模型是否能很好地推广到看不见的组。为了衡量这一点,我们需要确保验证折叠中的所有样本都来自在配对训练折叠中根本没有代表的组。
The following cross-validation splitters can be used to do that. The grouping identifier for the samples is specified via the groups parameter.
以下交叉验证拆分器可用于执行此操作。样本的分组标识符通过 groups 参数指定。
4.3.1.3.1 Group k-fold
4.3.1.3.1组 k 折
GroupKFold is a variation of k-fold which ensures that the same group is not represented in both testing and training sets. For example if the data is obtained from different subjects with several samples per-subject and if the model is flexible enough to learn from highly person specific features it could fail to generalize to new subjects. GroupKFold makes it possible to detect this kind of overfitting situations.
GroupKFold是 k-fold 的一种变体,它确保同一组不会在测试集和训练集中表示。例如,如果数据是从不同的受试者中获得的,每个受试者有多个样本,并且如果模型足够灵活,可以从高度特定于人的特征中学习,则它可能无法推广到新的受试者。GroupKFold可以检测这种过度拟合情况。
Imagine you have three subjects, each with an associated number from 1 to 3:
假设您有三个主题,每个主题都有一个从 1 到 3 的关联数字:
>>> from sklearn.model_selection import GroupKFold
>>> 从sklearn.model_selectionimport GroupKFold
>>> X = [0.1, 0.2, 2.2, 2.4, 2.3, 4.55, 5.8, 8.8, 9, 10]
>>> X = [0.1, 0.2, 2.2, 2.4, 2.3, 4.55, 5.8, 8.8, 9, 10]
>>> y = ["a", "b", "b", "b", "c", "c", "c", "d", "d", "d"]
>>> y = [“a”, “b”, “b”, “b”, “c”, “c”, “c”, “d”, “d”, “d”]
>>> groups = [1, 1, 1, 2, 2, 2, 3, 3, 3, 3]
>>> 组 = [1, 1, 1, 2, 2, 2, 3, 3, 3, 3]
>>> gkf = GroupKFold(n_splits=3)
>>> gkf = 组 KFold(n_splits=3)
>>> for train, test in gkf.split(X, y, groups=groups):
>>> 用于火车,在 gkf 中测试。split(X, y, groups=groups):
... print("%s %s" % (train, test))
... print(“%s%s”% (train, test))
[0 1 2 3 4 5][6 7 8 9]
[0 1 2 6 7 8 9][3 4 5]
[3 4 5 6 7 8 9][0 1 2]
每个主题都位于不同的测试组中,并且同一主题永远不会同时出现在测试和训练中。请注意,由于数据不平衡,折叠的大小并不完全相同。
以下是交叉验证行为的可视化效果。
4.3.1.3.2 退出一个组
LeaveOneGroupOut 是一种交叉验证方案,它根据第三方提供的整数组数组来保存样本。此组信息可用于对任意特定于域的预定义交叉验证折叠进行编码。
因此,每个训练集都由除与特定组相关的样本之外的所有样本组成。
例如,在多个实验的情况下,LeaveOneGroupOut 可用于根据不同的实验创建交叉验证:我们使用除一个实验之外的所有实验的样本创建一个训练集:
>>> from sklearn.model_selection import LeaveOneGroupOut
>>> X = [1, 5, 10, 50, 60, 70, 80]
>>> X = [1, 5, 10, 50, 60, 70, 80]
>>> y = [0, 1, 1, 2, 2, 2, 2]
>>> y = [0, 1, 1, 2, 2, 2, 2]
>>> groups = [1, 1, 2, 2, 3, 3, 3]
>>> 组 = [1, 1, 2, 2, 3, 3, 3]
>>> logo = LeaveOneGroupOut()
>>> 徽标 = LeaveOneGroupOut()
>>> for train, test in logo.split(X, y, groups=groups):
>>> 用于火车,在 logo 中进行测试。split(X, y, groups=groups):
... print("%s %s" % (train, test))
... print(“%s%s”% (train, test))
[2 3 4 5 6] [0 1]
[2 3 4 5 6][0 1]
[0 1 4 5 6] [2 3]
[0 1 4 5 6][2 3]
[0 1 2 3] [4 5 6]
[0 1 2 3][4 5 6]
Another common application is to use time information: for instance the groups could be the year of collection of the samples and thus allow for cross-validation against time-based splits.
另一个常见的应用是使用时间信息:例如,组可以是样本收集的年份,从而允许对基于时间的拆分进行交叉验证。
4.3.1.3.3 Leave P Group Out
4.3.1.3.3 将 P 组留出
LeavePGroupsOut is similar as LeaveOneGroupOut, but removes samples related to P groups for each training/test set.
LeavePGroupsOut 与 LeaveOneGroupOut 类似,但删除了与每个训练/测试集的 P 组相关的样本。
Example of Leave-2-Group Out:
leave-2-group out 示例:
>>> from sklearn.model_selection import LeavePGroupsOut
>>> X = np.arange(6)
>>> X = np.阿兰吉(6)
>>> y = [1, 1, 1, 2, 2, 2]
>>> y = [1, 1, 1, 2, 2, 2]
>>> groups = [1, 1, 2, 2, 3, 3]
>>> 组 = [1, 1, 2, 2, 3, 3]
>>> lpgo = LeavePGroupsOut(n_groups=2)
>>> lpgo = LeavePGroupsOut(n_groups=2)
>>> for train, test in lpgo.split(X, y, groups=groups):
>>> 用于火车,在 lpgo 中测试。split(X, y, groups=groups):
... print("%s %s" % (train, test))
... print(“%s%s”% (train, test))
[4 5] [0 1 2 3]
[4 5][0 1 2 3]
[2 3] [0 1 4 5]
[2 3][0 1 4 5]
[0 1] [2 3 4 5]
[0 1][2 3 4 5]
4.3.1.3.4 Group Shuffle Split
4.3.1.3.4 Group Shuffle Split
The GroupShuffleSplit iterator behaves as a combination of ShuffleSplit and LeavePGroupsOut, and generates a sequence of randomized partitions in which a subset of groups are held out for each split.
GroupShuffleSplit 迭代器的行为类似于 ShuffleSplit 和 LeavePGroupsOut 的组合,并生成一系列随机分区,其中每个拆分都会保留一个组子集。
Here is a usage example:
下面是一个用法示例:
>>> from sklearn.model_selection import GroupShuffleSplit
>>> X = [0.1, 0.2, 2.2, 2.4, 2.3, 4.55, 5.8, 0.001]
>>> X = [0.1, 0.2, 2.2, 2.4, 2.3, 4.55, 5.8, 0.001]
>>> y = ["a", "b", "b", "b", "c", "c", "c", "a"]
>>> y = [“a”, “b”, “b”, “b”, “c”, “c”, “c”, “a”]
>>> groups = [1, 1, 2, 2, 3, 3, 4, 4]
>>> 组 = [1, 1, 2, 2, 3, 3, 4, 4]
>>> gss = GroupShuffleSplit(n_splits=4, test_size=0.5, random_state=0)
>>> gss = GroupShuffleSplit(n_splits=4, test_size=0.5, random_state=0)
>>> for train, test in gss.split(X, y, groups=groups):
>>> 用于火车,在 gss 中测试。split(X, y, groups=groups):
... print("%s %s" % (train, test))
... print(“%s%s”% (train, test))
...
[0 1 2 3] [4 5 6 7]
[0 1 2 3][4 5 6 7]
[2 3 6 7] [0 1 4 5]
[2 3 6 7][0 1 4 5]
[2 3 4 5] [0 1 6 7]
[2 3 4 5][0 1 6 7]
[4 5 6 7] [0 1 2 3]
[4 5 6 7][0 1 2 3]
Here is a visualization of the cross-validation behavior.
以下是交叉验证行为的可视化效果。
Fig.4.9
This class is useful when the behavior of LeavePGroupsOut is desired, but the number of groups is large enough that generating all possible partitions with P groups withheld would be prohibitively expensive. In such a scenario, GroupShuffleSplit provides a random sample (with replacement) of the train / test splits generated by LeavePGroupsOut
当需要 LeavePGroupsOut 的行为时,此类非常有用,但组数足够大,以至于生成保留 P 组的所有可能分区的成本高得令人望而却步。在这种情况下,GroupShuffleSplit 提供 LeavePGroupsOut 生成的训练/测试拆分的随机样本(带替换).
4.3.2 Procedure of NIPALS
4.3.2 NIPALS 程序
4.3.2.1 Inner loop of the iterative NIPALS algorithm.
4.3.2.1 迭代 NIPALS 算法的内循环。
Provides an alternative to the svd(X'Y); returns the first left and right singular vectors of X'Y. See PLS for the meaning of the parameters. It is similar to the Power method for determining the eigenvectors and eigenvalues of a X'Y.
提供 svd(X'Y) 的替代项;返回 X'Y 的第一个左和里 ht 奇异向量。有关参数的含义,请参阅 PLS。它类似于用于确定 X'Y 的特征向量和特征值的 Power 方法。
def _nipals_twoblocks_inner_loop(X, Y, max_iter=500, tol=1e-06,):
def_nipals_twoblocks_inner_loop(X, Y, max_iter=500, tol=1e-06,):
y_score = Y[:, [0]]
y_score = Y[:, [0]]
x_weights_old = 0
ite = 1
while True:
whileTrue 时:
# 1.1 Update u: the X weights
# 1.1 更新 u:X 权重
# regress each X column on y_score
# 在 y_score 上回归每个 X 列
# w=X.T*Y[:,0]/||Y[:,0]||
# w=X.T*Y[:,0]/||Y[:,0]||
x_weights = np.dot(X.T, y_score) / np.dot(y_score.T, y_score)
x_weights = np.dot(X.T, y_score) / np.dot(y_score.T, y_score)
# 1.2 Normalize u
# 1.2 归一化 u
# w=w/||w||
x_weights /= np.sqrt(np.dot(x_weights.T, x_weights))
x_weights /= np.sqrt(np.dot(x_weights.T, x_weights))
# 1.3 Update x_score: the X latent scores
# 1.3 更新x_score:X 潜在分数
# t=X*w
x_score = np.dot(X, x_weights)
x_score = np.dot(X, x_weights)
# 2.1 regress each Y column on x_score
# 2.1 在 x_score 上回归每个 Y 列
# q=Y*t/(t.T*t)
# q=Y*t/(t.T*t)
y_weights = np.dot(Y.T, x_score) / np.dot(x_score.T, x_score)
y_weights = np.dot(Y.T, x_score) / np.dot(x_score.T, x_score)
# 2.2 Update y_score: the Y latent scores
# 2.2 更新 y_score:Y 潜在分数
# u=Y*q/(q.T,q)
# u=Y*q/(q.T,q)
y_score = np.dot(Y, y_weights) / np.dot(y_weights.T, y_weights)
y_score = np.dot(Y, y_weights) / np.dot(y_weights.T, y_weights)
x_weights_diff = x_weights - x_weights_old
if np.dot(x_weights_diff.T, x_weights_diff) < tol :
如果 np.dot(x_weights_diff.T, x_weights_diff) < tol :
break
破
if ite == max_iter:
如果 ite == max_iter:
warnings.warn('Maximum number of iterations reached')
warnings.warn('达到的最大迭代次数')
break
破
x_weights_old = x_weights
ite += 1
return x_weights, y_weights
返回 x_weights, y_weights
4.3.2.2 Center X and Y
4.3.2.2 中心 X 和 Y
def _center_xy(X, Y):
def_center_xy(X, Y):
# center
# 居中
x_mean = X.mean(axis=0)
x_mean = X.mean(axis=0)
X_center = np.subtract(X, x_mean)
X_center = np.subtract(X, x_mean)
y_mean = Y.mean(axis=0)
y_mean = Y.mean(axis=0)
Y_center = np.subtract(Y, y_mean)
Y_center = np.subtract(Y, y_mean)
return X_center, Y_center, x_mean, y_mean
返回 X_center、Y_center、x_mean y_mean
4.3.2.3 NIPALS
This class implements the generic PLS algorithm, constructors' parameters allow to obtain a specific implementation such as:
此类实现通用 PLS 算法,构造函数的参数允许获得特定的实现,例如:
This implementation uses the PLS Wold 2 blocks algorithm based on two nested loops:
此实现使用基于两个嵌套循环的 PLS would 2 blocks 算法:
(i) The outer loop iterate over components.
(i) 外循环迭代组件。
(ii) The inner loop estimates the weights vectors. This can be done with two algo. (a) the inner loop of the original NIPALS algo. or (b) a SVD on residuals cross-covariance matrices.
(ii) 内循环估计权重向量。这可以通过两个算法来完成。(a) 原始 NIPALS 算法的内环。或 (b) 残差交叉协方差矩阵上的 SVD。
class _NIPALS():
class_NIPALS() 的
'''
参数
----------
X: array-like of predictors, shape = [n_samples, p], Training vectors, where n_samples in the number of samples and p is the number of predictors.
X:类数组的预测变量,形状 = [n_samples, p],训练向量,其中 n_samples 是样本数,p 是预测变量的数量。
Y: array-like of response, shape = [n_samples, q], Training vectors, where n_samples in the number of samples and q is the number of response variables.
Y:响应的数组状,形状 = [n_samples, q],训练向量,其中 n_samples是样本数,q 是响应变量数。
n_components: int, number of components to keep. (default 2).
n_components: int,要保留的组件数。(默认 2)。
max_iter: an integer, the maximum number of iterations (default 500) of the NIPALS inner loop (used only if algorithm="nipals")
max_iter:一个整数,NIPALS 内循环的最大迭代次数(默认 500)(仅在 algorithm=“nipals 时使用”)
tol: non-negative real, default 1e-06, The tolerance used in the iterative algorithm.
tol:非负实数,默认 1e-06,迭代算法中使用的容差。
属性
----------
`x_weights_` : array, [p, n_components]
'x_weights_' : 数组, [p, n_components]
X block weights vectors.
X 块权重向量。
`y_weights_` : array, [q, n_components]
'y_weights_' : 数组, [q, n_components]
Y block weights vectors.
Y 块权重向量。
`x_loadings_` : array, [p, n_components]
'x_loadings_' : 数组, [p, n_components]
X block loadings vectors.
X 块加载向量。
`y_loadings_` : array, [q, n_components]
'y_loadings_' : 数组, [q, n_components]
Y block loadings vectors.
Y 块加载向量。
`x_scores_` : array, [n_samples, n_components]
'x_scores_' : 数组, [n_samples, n_components]
`y_scores_` : array, [n_samples, n_components]
'y_scores_' : 数组, [n_samples, n_components]
`x_rotations_` : array, [p, n_components]
'x_rotations_' : 数组, [p, n_components]
X block to latents rotations.
X 块转换为潜在旋转。
`y_rotations_` : array, [q, n_components]
'y_rotations_' : 数组, [q, n_components]
Y block to latents rotations.
Y 块转换为潜在旋转。
coefs: array, [p, q]
COEFS:数组,[p, q]
The coefficients of the linear model: Y = X coefs + Err
线性模型的系数:Y = X 系数 + Err
'''
def __init__(self, n_components, max_iter=500, tol=1e-06, copy=True):
def__init__(self, n_components,max_iter=500, tol=1e-06, copy=True):
self.n_components = n_components
self.max_iter = max_iter
self.tol = tol
self.copy = 复制
def fit(self, X, Y, n_components):
deffit(self, X, Y, n_components):
n = X.shape[0]
n = X.形状[0]
p = X.shape[1]
p = X.形状[1]
q = Y.shape[1]
q = Y 形状[1]
if n != Y.shape[0]:
如果 n != Y.shape[0]:
'Incompatible shapes: X has %s samples, while Y '
'不兼容的形状:X 有 %s 个样本,而 Y '
'has %s' % (X.shape[0], Y.shape[0])
'has %s' % (X.shape[0], Y.shape[0])
if self.n_components < 1 or self.n_components > p:
如果是self.n_components < 1或self.n_components > p:
raise ValueError('invalid number of components')
raise ValueError('invalid number of components')
Xcenter, Ycenter, self.x_mean_, self.y_mean_ = _center_xy(X, Y)
Xcenter, Ycenter, self.x_mean_, self.y_mean_ = _center_xy(X, Y)
# Residuals (deflated) matrices
# 残差(收缩)矩阵
Xk = Xcenter
Yk = Ycenter
# 结果矩阵
self.x_scores_ = np.zeros((n, self.n_components))
self.y_scores_ = np.zeros((n, self.n_components))
self.x_weights_ = np.zeros((p, self.n_components))
self.x_weights_ = np.zeros((p, self.n_components))
self.y_weights_ = np.zeros((q, self.n_components))
self.y_weights_ = np.zeros((q, self.n_components))
self.x_loadings_ = np.zeros((p, self.n_components))
self.x_loadings_ = np.zeros((p, self.n_components))
self.y_loadings_ = np.zeros((q, self.n_components))
self.y_loadings_ = np.zeros((q, self.n_components))
# NIPALS algo: outer loop, over components
# NIPALS 算法:外环,组件
for k in range(self.n_components):
对于 Range (self.n_components) 中的 k:
x_weights, y_weights = _nipals_twoblocks_inner_loop(
x_weights,y_weights = _nipals_twoblocks_inner_loop(
X=Xk, Y=Yk, max_iter=self.max_iter, tol=self.tol,)
X=Xk, Y=Yk, max_iter=self.max_iter,tol=self.tol,)
# compute scores
# 计算分数
x_scores = np.dot(Xk, x_weights)
x_scores = np.dot(Xk, x_weights)
y_ss = np.dot(y_weights.T, y_weights)
y_ss = np.dot(y_weights.T, y_weights)
y_scores = np.dot(Yk, y_weights) / y_ss
y_scores = np.dot(Yk, y_weights) / y_ss
x_loadings = np.dot(Xk.T, x_scores) / np.dot(x_scores.T, x_scores)
x_loadings = np.dot(Xk.T, x_scores) / np.dot(x_scores.T, x_scores)
# - substract rank-one approximations to obtain remainder matrix
# - 减去 1 阶近似值以获得余数矩阵
Xk -= np.dot(x_scores, x_loadings.T)
Xk -= np.dot(x_scores, x_loadings.T)
y_loadings = (np.dot(Yk.T, x_scores) / np.dot(x_scores.T, x_scores))
y_loadings = (np.dot(Yk.T, x_scores) / np.dot(x_scores.T, x_scores))
Yk -= np.dot(x_scores, y_loadings.T)
Yk -= np.dot(x_scores, y_loadings.T)
self.x_scores_[:, k] = x_scores.ravel() # T
self.x_scores_[:, k] = x_scores.ravel() # 吨
self.y_scores_[:, k] = y_scores.ravel() # U
self.y_scores_[:, k] = y_scores.ravel() # U
self.x_weights_[:, k] = x_weights.ravel() # W
self.x_weights_[:, k] = x_weights.ravel() # W
self.y_weights_[:, k] = y_weights.ravel() # C
self.y_weights_[:, k] = y_weights.ravel() # C
self.x_loadings_[:, k] = x_loadings.ravel() # P
self.x_loadings_[:, k] = x_loadings.ravel() # p
self.y_loadings_[:, k] = y_loadings.ravel() # Q
self.y_loadings_[:, k] = y_loadings.ravel() # Q
lists_coefs = []
for i in range(n_components):
对于 i in range(n_components):
self.x_rotations_ = np.dot(self.x_weights_[:, :i + 1], linalg.inv(np.dot(self.x_loadings_[:, :i + 1].T, self.x_weights_[:, :i + 1])))
self.x_rotations_ = np.dot(self.x_weights_[:, :i + 1],linalg.inv(np.dot(self.x_loadings_[:, :i + 1].T, self.x_weights_[:, :i + 1])))
self.coefs = np.dot(self.x_rotations_, self.y_loadings_[:, :i + 1].T)
self.coefs = np.dot(self.x_rotations_, self.y_loadings_[:, :i + 1].T)
lists_coefs.append(self.coefs)
lists_coefs.append(self.coefs)
return lists_coefs
返回 lists_coefs
def predict(self, x_test, coefs_B, xtr_mean, ytr_mean):
defpredict(self, x_test, coefs_B, xtr_mean, ytr_mean):
xte_center = np.subtract(x_test, xtr_mean)
xte_center = np.subtract(x_test, xtr_mean)
y_pre = np.dot(xte_center, coefs_B)
y_pre = np.dot(xte_center, coefs_B)
y_predict = np.add(y_pre, ytr_mean)
y_predict = np.add(y_pre, ytr_mean)
return y_predict
返回 y_predict
4.4 Example application
4.4 示例应用程序
4.4.1 Demo of PLS
4.4 1 PLS 演示
Software version python 2.7, and a Microsoft Windows 7 operating system. Cross-validation and train_test_split are performed using the sklearn package, respectively. Dataset loading is done using the scipy package, and other programs can be implemented by individuals.
Software 版本 python 2.7 和 Microsoft Windows7 操作系统。 Cross-validation 和 train_test_split 分别 使用 sklearn 包执行。数据集加载是使用 scipy 包完成的,其他程序可以由个人实现。
# -*- coding: utf-8 -*-
# -*- 编码:UTF-8 -*-
从 sklearn.cross_validation 导入train_test_split
来自 scipy.io.matlab.mio import loadmat
from PLS.PLS import PLS
如果 __name__ == '__main__':
fname = loadmat('NIRcorn.mat')
fname = loadmat('NIRcorn.mat')
x = fname['cornspect']
y = fname['cornprop'][:, 0:1]
y = fname['cornprop'][:, 0:1]
print x.shape, y.shape
打印 x.shape、y.shape
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
x_train、x_test、y_train、y_test = train_test_split(x, y, test_size=0.2, random_state=0)
demo = PLS(x_train, y_train, x_test, y_test, n_fold=10, max_components=9)
演示 = PLS(x_train, y_train, x_test, y_test, n_fold=10, max_components=9)
RMSECV, min_RMSECV, comp_best, RMSEC, RMSEP = demo.pls()
RMSECV、min_RMSECV、comp_best、RMSEC、RMSEP = demo.pls()
print 'RMSECV', RMSECV
print'RMSECV', RMSECV
print 'min_RMSECV', min_RMSECV
print 'min_RMSECV' , min_RMSECV
print 'comp_best', comp_best
print'comp_best', comp_best
print 'RMSEP:', RMSEP
打印 'RMSEP:', RMSEP
# -*- coding: utf-8 -*-
# -*- 编码:UTF-8 -*-
from cross_validation import Cross_Validation
from NIPALS import _NIPALS
来自 NIPALS 进口_NIPALS
将 numpy 导入为 NP
class PLS():
类PLS():
def __init__(self, x_train, y_train, x_test, y_test, n_fold=10, max_components=10):
def__init__(自我、x_train、y_train、x_test、y_test、n_fold=10、max_components=10):
self.x_train = x_train
自身.x_train = x_train
self.x_test = x_test
self.y_train = y_train
self.y_test = y_test
自身.y_test = y_test
self.n_fold = n_fold
self.max_components = max_components
def pls(self):
请防守(自己):
# Select the optimal principal component number
# 选择最佳主成分编号
pls_cv = Cross_Validation(self.x_train, self.y_train, self.n_fold, self.max_components)
pls_cv = Cross_Validation(自我.x_train, 自我.y_train, 自我.n_fold, 自我.max_components)
y_allPredict, y_measure = pls_cv.predict_cv()
y_allPredict,y_measure = pls_cv.predict_cv()
RMSECV, min_RMSECV, comp_best = pls_cv.mse_cv(y_allPredict, y_measure)
RMSECV、min_RMSECV、comp_best = pls_cv.mse_cv(y_allPredict、y_measure)
# Modeling by optimal principal component number
# 按最优主成分数建模
pls = _NIPALS(comp_best)
请 = _NIPALS(comp_best)
List_coef_B = pls.fit(self.x_train, self.y_train, comp_best)
List_coef_B = pls.fit(self.x_train, self.y_train, comp_best)
coef_B = List_coef_B[comp_best - 1]
x_trainMean = np.mean(self.x_train, axis=0)
x_trainMean = np.mean(自我.x_train,轴=0)
y_trainMean = np.mean(self.y_train, axis=0)
y_trainMean = np.mean(自我.y_train,轴=0)
y_trainPredict = pls.predict(self.x_train, coef_B, x_trainMean, y_trainMean)
y_trainPredict = pls.predict(self.x_train, coef_B, x_trainMean, y_trainMean)
# compute RMSEC
# 计算 RMSEC
press = np.square(np.subtract(self.y_train, y_trainPredict))
按 = np.square(np.subtract(self.y_train, y_trainPredict))
all_press = np.sum(press, axis=0)
RMSEC = np.sqrt(all_press / self.x_train.shape[0])
RMSEC = np.sqrt(all_press / self.x_train.shape[0])
# compute RMSEP
# 计算 RMSEP
y_predict = pls.predict(self.x_test, coef_B, x_trainMean, y_trainMean)
y_predict = pls.predict(self.x_test, coef_B, x_trainMean, y_trainMean)
press = np.square(np.subtract(self.y_test, y_predict))
按 = np.square(np.subtract(self.y_test, y_predict))
all_press = np.sum(press, axis=0)
RMSEP = np.sqrt(all_press / self.x_test.shape[0])
RMSEP = np.sqrt(all_press / self.x_test.shape[0])
return RMSECV, min_RMSECV, comp_best, RMSEC, RMSEP
返回 RMSECV、min_RMSECV、comp_best、RMSEC、RMSEP
# -*- coding: utf-8 -*-
# -*- 编码:UTF-8 -*-
将 numpy 导入为 NP
从 sklearn 导入 cross_validation
from NIPALS import _NIPALS
来自 NIPALS 进口_NIPALS
class Cross_Validation(): # Variable initialization
classCross_Validation(): # 变量初始化
def __init__(self, x, y, n_fold, max_components):
def__init__(self, x, y, n_fold, max_components):
self.x = x
self.y = y
self.y = y
self.n = x.shape[0]
self.n_fold = n_fold
self.max_components = max_components
def cv(self): # Divide training sets and test sets
defcv(self): #划分训练集和测试集
kf = cross_validation.KFold(self.n, self.n_fold)
KF = cross_validation。KFold(自我.n, 自我.n_fold)
x_train = []
y_train = []
x_test = []
y_test = []
对于 train_index,test_index 以 KF 为单位:
xtr, ytr = self.x[train_index], self.y[train_index]
xtr, ytr = self.x[train_index], self.y[train_index]
xte, yte = self.x[test_index], self.y[test_index]
x_train.append(xtr)
y_train.append(ytr)
x_test.append(xte)
y_test.append(yte)
返回 x_train、x_test、y_train y_test
defpredict_cv(个体经营):
x_train、x_test、y_train = y_test = self.cv()
y_allPredict = np.ones((1, self.max_components))
请 = _NIPALS(自我.max_组件)
对于 i in range(self.n_fold):
y_predict = np.zeros((y_test[i].shape[0], self.max_components))
x_trainMean = np.mean(x_train[i], axis=0)
y_trainMean = np.mean(y_train[i], axis=0)
x_testCenter = np.subtract(x_test[i], x_trainMean)
list_coef_B = pls.fit(x_train[i], y_train[i], self.max_components)
对于 range(self.max_components) 中的 j:
y_pre = np.dot(x_testCenter, list_coef_B[j])
y_pre = y_pre + y_trainMean
y_predict[:, j] = y_pre.ravel()
y_allPredict = np.vstack((y_allPredict, y_predict))
y_allPredict = y_allPredict[1:]
返回 y_allPredict,self.y
defmse_cv(self, y_allPredict, y_measure):
按 = np.square(np.subtract(y_allPredict, y_measure))
all_PRESS = np.sum(PRESS, axis=0)
RMSECV = np.sqrt(all_PRESS / self.n)
min_RMSECV = 最小值 (RMSECV)
comp_array = RMSECV.argsort()
comp_best = comp_array[0] + 1
返回 RMSECV、min_RMSECV comp_best
# -*-编码:utf-8-*-
将 matplotlib.pyplot 导入为 PLT
def draws_pre_pharm(Y_test, Y_predict, y_trainPredict, y_train):
defdraws_pre_pharm(Y_test, Y_predict, y_trainPredict, y_train):
plt.figure(figsize=(8, 8), facecolor='white')
plt.figure(figsize=(8, 8), facecolor='white')
plt.subplot(321)
plt.子图(321)
plt.title('spectrometer1: weight')
plt.title('光谱仪1:重量')
plt.plot([min(y_train[0]), max(y_train[0])], [min(y_train[0]), max(y_train[0])], 'black', label='y=x')
plt.plot([min(y_train[0]), max(y_train[0])], [min(y_train[0]), max(y_train[0])], 'black', label='y=x')
plt.scatter(y_train[0], y_trainPredict[0], s=20, c='r', marker='o', label='calibration set')
plt.scatter(y_train[0], y_trainPredict[0], s=20, c='r', marker='o', label='校准集')
plt.scatter(Y_test[0], Y_predict[0], s=30, c='b', marker='o', label='test set')
plt.scatter(Y_test[0], Y_predict[0], s=30, c='b', marker='o', label='测试集')
plt.xlabel('Measured value')
plt.xlabel('测量值')
plt.ylabel(' Predicted value')
plt.ylabel(' 预测值')
plt.subplot(322)
plt.子图(322)
plt.title("spectrometer1: hardness")
plt.title(“光谱仪 1:硬度”)
plt.plot([min(y_train[1]), max(y_train[1])], [min(y_train[1]), max(y_train[1])], 'black', label='y=x')
plt.plot([min(y_train[1]), max(y_train[1])], [min(y_train[1]), max(y_train[1])], 'black', label='y=x')
plt.scatter(y_train[1], y_trainPredict[1], s=20, c='r', marker='o', label='calibration set')
plt.scatter(y_train[1], y_trainPredict[1], s=20, c='r', marker='o', label='校准集')
plt.scatter(Y_test[1], Y_predict[1], s=30, c='b', marker='o', label='test set')
plt.scatter(Y_test[1], Y_predict[1], s=30, c='b', marker='o', label='测试集')
plt.xlabel('Measured value')
plt.xlabel('测量值')
plt.ylabel(' Predicted value')
plt.ylabel(' 预测值')
plt.subplot(323)
plt.subplot(323)
plt.title("spectrometer1: assay")
plt.title(“光谱仪 1:分析”)
plt.plot([min(y_train[2]), max(y_train[2])], [min(y_train[2]), max(y_train[2])], 'black', label='y=x')
plt.plot([min(y_train[2]), max(y_train[2])], [min(y_train[2]), max(y_train[2])], 'black', label='y=x')
plt.scatter(y_train[2], y_trainPredict[2], s=20, c='r', marker='o', label='calibration set')
plt.scatter(y_train[2], y_trainPredict[2], s=20, c='r', marker='o', label='校准集')
plt.scatter(Y_test[2], Y_predict[2], s=30, c='b', marker='o', label='test set')
plt.scatter(Y_test[2], Y_predict[2], s=30, c='b', marker='o', label='测试集')
plt.xlabel('Measured value')
plt.xlabel('测量值')
plt.ylabel(' Predicted value')
plt.ylabel(' 预测值')
plt.subplot(324)
plt.subplot(324)
plt.title("spectrometer2: weight")
plt.title(“光谱仪 2:重量”)
plt.plot([min(y_train[3]), max(y_train[3])], [min(y_train[3]), max(y_train[3])], 'black', label='y=x')
plt.plot([min(y_train[3]), max(y_train[3])], [min(y_train[3]), max(y_train[3])], 'black', label='y=x')
plt.scatter(y_train[3], y_trainPredict[3], s=20, c='r', marker='o', label='calibration set')
plt.scatter(y_train[3], y_trainPredict[3], s=20, c='r', marker='o', label='校准集')
plt.scatter(Y_test[3], Y_predict[3], s=30, c='b', marker='o', label='test set')
plt.scatter(Y_test[3], Y_predict[3], s=30, c='b', marker='o', label='测试集')
plt.xlabel('Measured value')
plt.xlabel('测量值')
plt.ylabel(' Predicted value')
plt.ylabel(' 预测值')
plt.subplot(325)
plt.subplot(325)
plt.title("spectrometer2: hardness")
plt.title(“光谱仪 2:硬度”)
plt.plot([min(y_train[4]), max(y_train[4])], [min(y_train[4]), max(y_train[4])], 'black', label='y=x')
plt.plot([min(y_train[4]), max(y_train[4])], [min(y_train[4]), max(y_train[4])], 'black', label='y=x')
plt.scatter(y_train[4], y_trainPredict[4], s=20, c='r', marker='o', label='calibration set')
plt.scatter(y_train[4], y_trainPredict[4], s=20, c='r', marker='o', label='校准集')
plt.scatter(Y_test[4], Y_predict[4], s=30, c='b', marker='o', label='test set')
plt.scatter(Y_test[4], Y_predict[4], s=30, c='b', marker='o', label='测试集')
plt.xlabel('Measured value')
plt.xlabel('测量值')
plt.ylabel(' Predicted value')
plt.ylabel(' 预测值')
plt.subplot(326)
plt.子图(326)
plt.title("spectrometer2: assay")
plt.title(“光谱仪 2: 分析”)
plt.plot([min(y_train[5]), max(y_train[5])], [min(y_train[5]), max(y_train[5])], 'black', label='y=x')
plt.plot([min(y_train[5]), max(y_train[5])], [min(y_train[5]), max(y_train[5])], 'black', label='y=x')
plt.scatter(y_train[5], y_trainPredict[5], s=20, c='r', marker='o', label='calibration set')
plt.scatter(y_train[5], y_trainPredict[5], s=20, c='r', marker='o', label='校准集')
plt.scatter(Y_test[5], Y_predict[5], s=30, c='b', marker='o', label='test set')
plt.scatter(Y_test[5], Y_predict[5], s=30, c='b', marker='o', label='测试集')
plt.xlabel('Measured value')
plt.xlabel('测量值')
plt.ylabel(' Predicted value')
plt.ylabel(' 预测值')
plt.tight_layout()
plt.tight_layout()
plt.show()
plt.show()
def rmsecv_comp_line_pharm(max_components, rmsecv_list):
defrmsecv_comp_line_pharm(max_components, rmsecv_list):
plt.figure(figsize=(8, 8), facecolor='white')
plt.figure(figsize=(8, 8), facecolor='white')
plt.subplot(321)
plt.子图(321)
plt.title('spectrometer1: weight')
plt.title('光谱仪1:重量')
plt.plot(range(1, max_components + 1), rmsecv_list[0], '-o')
plt.plot(范围(1, max_components + 1), rmsecv_list[0], '-o')
plt.xlabel('num_components')
plt.ylabel('RMSECV')
plt.subplot(322)
plt.子图(322)
plt.title("spectrometer1: hardness")
plt.title(“光谱仪 1:硬度”)
plt.plot(范围(1, max_components + 1), rmsecv_list[1], '-o')
plt.xlabel('num_components')
plt.ylabel('RMSECV')
plt.subplot(323)
plt.title(“光谱仪 1:分析”)
plt.plot(范围(1, max_components + 1), rmsecv_list[2], '-o')
plt.xlabel('num_components')
plt.ylabel('RMSECV')
plt.subplot(324)
plt.title(“光谱仪 2:重量”)
plt.plot(范围(1, max_components + 1), rmsecv_list[3], '-o')
plt.xlabel('num_components')
plt.ylabel('RMSECV')
plt.subplot(325)
plt.title(“光谱仪 2:硬度”)
plt.plot(范围(1, max_components + 1), rmsecv_list[4], '-o')
plt.xlabel('num_components')
plt.ylabel('RMSECV')
plt.子图(326)
plt.title(“光谱仪 2: 分析”)
plt.plot(范围(1, max_components + 1), rmsecv_list[5], '-o')
plt.xlabel('num_components')
plt.ylabel('RMSECV')
plt.tight_layout()
plt.show()
4.4.2 Corn 数据集
在本节中,玉米数据集用于实验。允许 PLS 的潜在变量取集合 [1, 15] 中的值,它由 10 倍交叉验证确定。除均值居中外,未使用任何预处理方法。表 4.1 显示了直接使用玉米数据集的水分、油、蛋白质和淀粉含量的 PLS 模型的训练误差、交叉验证误差、预测误差和主成分数。
表 4.1 PLS 模型和属性总结.
|
| RMSEC | RMSEP |
|
| |
|
| 0.00505 | 0.00799 | 0.01017 | 15 | |
|
| 0.02680 | 0.03934 | 0.06355 | 15 | |
|
| 0.05979 | 0.09843 | 0.09710 | 14 | |
|
| 0.08879 | 0.14584 | 0.19731 | 15 | |
|
| 0.09826 | 0.11225 | 0.14085 | 11 | |
|
| 0.08043 | 0.07055 | 0.10078 | 7 | |
|
| 0.09945 | 0.15854 | 0.144019 | 10 | |
|
| 0.24319 | 0.35500 | 0.36011 | 11 | |
|
| 0.08464 | 0.11239 | 0.16117 | 15 | |
|
| 0.06239 | 0.07214 | 0.10260 | 12 | |
|
| 0.10276 | 0.14496 | 0.14700 | 10 | |
|
| 0.21746 | 0.42008 | 0.34952 | 13 |
RMSEC: 校准集的均方根误差
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
从表 4.1 可以看出,玉米中各组分的 RMSEC、RMSECV 和 RMSEP 没有显著差异,说明没有过拟合现象,RMSEP 很小,说明没有欠拟合现象。主成分数量的选择是合理的。
在本文中,PLS 算法的主成分是通过 10 倍交叉验证方法选择的。PLS 模型的 RMSECV 如图 2 所示。 4.1-4.3 的 4.1 和 4.3 中。
无花果。4.10 关于 m5spec 仪器的 PLS 模型最 优潜在变量数的选择过程
无花果。 4.11 关于 m p5spec 仪器的 PLS 模型最优潜在变量数的选择过程
图 4.12 关于 mp6spec instrument 的 PLS 模型中最优潜在变量数的选择过程
为了更直观地比较 PLS 算法的拟合效果,图 1 中的 3 个模型。4.13-4.15 显示测量值与预测值的图,其中 o是校准集和 test 集。 玉米中的各种成分。f 模型预测得更好,对应的点更接近线 y=x。因此,可以根据 y=x 线附近数据点的集中程度来判断 PLS 算法的预测性能。此外,可以更直观地观察它们的拟合效果。
无花果。4.13 实际值与 m5spec 仪器的预测值之比较。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
无花果。4.14 mp5spec 仪器的实际值与预测值的比较 蓝色和红色的点分别代表训练集和测试集中每个样本的结果。
无花果。4.15 mp6spec 工具的实际值与预测值的比较 蓝色和红色的点分别代表训练集和测试集中每个样本的结果。
4.4.2 Wheat 数据集
表 4.2 还列出了交叉验证集、校准集和测试集的不同 PLS 模型的 RMSE。 根据最小 RMSECV 准则,确定潜在变量的最优数量,并列于表 4.2 中 对于 PLS 模型,最优潜在变量的数量分别为 15、15、15、15、8 和 15;
表 4.2 PLS 模型和属性总结.
|
| RMSEC | RMSEP |
|
| |
B1 |
| 0.31905 | 0.37823 | 0.52004 | 15 | |
B2 |
| 0.37818 | 0.39704 | 0.55749 | 15 | |
B3 |
| 0.34824 | 0.41466 | 0.48623 | 15 | |
A1 |
| 0.17773 | 0.29443 | 0.23551 | 15 | |
A2 |
| 0.53254 | 0.64587 | 0.93716 | 8 | |
A3 |
| 0.17221 | 0.28497 | 0.23113 | 15 |
RMSEC: 校准集的均方根误差
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
为了实现每个模型的最佳性能, 通过执行 10 倍交叉验证对潜在变量的最佳数量进行了预优化。PLS 模型的 RMSECV 如图 4.7 所示,每个图最低点的最小交叉验证误差 是最佳潜在变量的数量。
无花果。 4.15 关于小麦数据集的 PLS 模型 最优潜在变量数的选择过程
此外,图 .图4.16 展示了不同 PLS 模型的测量值与训练集和测试集的预测值之间的关系。可以看出,预期浓度和预测浓度之间具有良好的相关性,这证实了 PLS 模型的良好性能。
无花果。4.16 小麦数据集的实际值与预测值的比较。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
4.4.3 药片数据集
本节使用 pharmaceutical tablet数据集进行实验。表 4.3 显示了 p医效片训练集对 PLS 模型的 训练误差、交叉验证误差、预测误差和主成分数。 从表 4.3 中可以看出,p 药片数据集中各分量的 RMSEC、RMSECV 和 RMSEP 都处于同一数量级,说明不存在过拟合现象,并且 RMSEP 较小,说明不存在欠拟合现象。说明主成分数量的选择是合理的。
表 4.3 PLS 模型和属性总结.
|
| RMSEC | RMSEP |
|
| |
|
| 3.47831 | 4.12929 | 3.81790 | 3 | |
|
| 1.28772 | 0.72098 | 1.39317 | 3 | |
|
| 4.19221 | 5.54743 | 4.97014 | 5 | |
|
| 2.73142 | 4.40738 | 3.44580 | 6 | |
|
| 1.35162 | 0.61732 | 1.40090 | 2 | |
|
| 4.28022 | 5.84714 | 4.92193 | 5 |
RMSEC: 校准集的均方根误差
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
无花果。 4.17 PLS 模型最优潜在变量数的选择过程 关于 关于 wheat 数据集
在本节中,PLS 算法的主成分是通过 10 倍交叉验证方法选择的,最大主成分设置为 15。该图显示了 PLS 模型的 RMSECV 随药片中三种活性成分含量和主成分数量的变化。当主成分数为 3、3、5、6、2 和 5 时,得到 RMSECV 的最小值。
为了更直观地比较各种方法的预测稳定性,图 4.16 分别显示了不同 PLS 模型对药片数据集的预期浓度和预测浓度之间的比较图。
无花果。4.18 小麦数据集的实际值与预测值的比较。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
4.5 堆叠偏最小二乘法
4.5.1 简介
光谱,尤其是近红外 (NIR) 光谱,通常由数百甚至数千个测量值或通道组成。从仪器收集的频谱包含对校准有益的信息,但通常包含冗余和不相关的信息。理论和实验证据表明,某种形式的波长选择可以通过避免响应数据中嵌入的不相关信息来提高 PLS 回归模型的预测性能 [1, 2]。波长选择方法已被证明可以提高预测模型的稳定性,并增加响应与属性之间关系的可解释性 [3, 4]。在一些方法中,目标是通过逐步消除具有高不确定性的波长来提取与该特性密切相关的光谱通道 [5, 6]。其他方法依靠遗传算法 [7, 8] 来优化和选择谱的子集或区间.
Nørgaard [3] 提出了一种间隔 PLS (iPLS) 算法,用于根据基于一系列用户选择的间隔构建的 PLS 模型的交叉验证性能来选择频谱的最佳单个间隔。这是一种有吸引力且简单的波长选择方法,但 iPLS 中使用的间隔大小选择不当会破坏 iPLS 回归模型的预测性能,因此 Xu 和 Schechter [1] 提出了一种改进的波长选择算法,以优化间隔位置和大小。尽管在使用最佳区间甚至几个更好的区间的模型中看到了改进,但仍然存在消除所有其他区间的风险,就像在 iPLS 中所做的那样,可能会导致有用信息的丢失 [9].
模型融合提供了变量或区间选择的替代方法。融合方法依赖于组合预测因子的理念,而不是只选择单个最佳预测因子或最佳预测因子集,以提高模型的稳健性 [9–11]。在堆叠回归中,通过确定每个子集或子模型的一组权重,将基于完整数据集的子集构建的一系列单独的回归模型组合在一起,这些权重用于从子模型集生成的预测集生成融合预测。这些权重可以通过每个模型或子集的交叉验证 [9,10] 或通过使用贝叶斯准则 [12] 获得。堆叠不涉及传统的变量选择,因此堆叠模型减少了与波长选择相关的 informatio3n 损失,同时获得了关注数据相关部分所证明的许多好处 [9]。虽然堆叠模型可能并不总是比使用单个最佳变量或子集的模型预测得更好,但堆叠模型可能提供其他优势,包括更高的精度和更好的抵抗异常值的影响 [11, 12]。这些可能的好处可以抵消生成子模型所需的额外时间和工作,这些子模型必须组合起来才能生成堆叠模型。堆叠回归越来越多地用于传感器融合和设计 [13] 以及预测 [14] 领域。在 Xu [15] 报道的蒙特卡洛交叉验证堆叠回归 (MCCVSR) 建模中,响应谱的固定窗口子集被堆叠起来,以试图克服 iPLS 建模中固有的波长选择的缺点。
在本节中,我们报告了一种新的堆叠算法,该算法旨在充分利用整个光谱响应中的信息,同时强调与目标特性高度相关的区间。第一种是堆叠 PLS (SPLS) 算法,将频谱拆分为一组大小相等、不相交的子区间,类似于 iPLS 回归中所做的,然后执行堆叠,使用交叉验证的误差对在子区间上获得的 PLS 回归模型进行加权。SPLS 回归中使用的二维交叉验证确定堆叠回归模型中使用的区间数以及所需的潜在变量 (LV) 数。我们表明,堆叠 PLS 回归的预测比在整个谱上执行的常规 PLS 建模回归获得的预测更稳健,并且永远不会比在谱的单个最佳子区间上执行的 iPLS 回归的预测差。SPLS 算法的性能使用仿真和 NIR光谱数据集进行评估。从这些数据集中获得的结果表明,与常规 PLS 和 iPLS 算法相比,所提出的方法不仅产生了更好的性能,而且在预测包括异常值样本在内的光谱数据方面也有潜在的用途。
4.5.2 堆栈偏最小二乘法理论
4.5.2.1 区间偏最小二乘算法 (iPLS)
Nørgaard 等 [3] 开发了一种由称为区间偏最小二乘法 (iPLS) 回归的局部回归方法驱动的波长选择过程,以提高预测能力并增强对 PLS 模型的解释。区间 PLS 算法中使用的方法将响应矩阵(在 p 个光谱波长下测量的 m个样本的 X)拆分为 n 个不相交的区间(X1、X2..., Xn) 宽度相等(p/n 通道),其中每个子间隔可能包含与感兴趣属性相关的不同信息和方差。采用 RMSECV 值和在每个子区间上通过 PLS 回归获得的 LV 数量,以关注重要的光谱区域并消除其他区域。基于子区间的最佳回归模型应需要最少数量的 PLS分量并产生最低的 RMSECV 值。江 [4] 从理论和实验上展示了常规 PLS回归和 iPLS 回归之间的内在关系,并发现在校准模型中增加光谱通道会导致预测均方根误差 (RMSEP) 的增加。在光谱中选择合适的区域或通道可以提高所得校准模型的预测性能,这表明
RMSEP (iPLS) < RMSEP (PLS)
4.5.2.2 堆叠偏最小二乘算法 (S PLS)
尽管 iPLS 算法将建模重点放在光谱中最重要的区间并删除其他区间,但 iPLS 算法消除的区间可能包含有利于校准的信息。为避免信息泄露,本文开发了一种名为堆叠偏最小二乘法 (SPLS) 的新算法,该算法通过应用常规 PLS 回归来组合来自所有区间模型的预测因子。SPLS 中使用的回归分析包括两个步骤,即校准和预测,类似于常规 PLS 和 iPLS 中的回归分析;但是,要找到与校准模型关联的堆叠回归向量,需要几个步骤。首先,创建子区间频谱集。与 iPLS 回归一样,校准光谱 X 集被分成 n 个等宽的不相交区间 Xk(k = 1,2,..., n)。对于校准步骤,在 mx 1 目标属性向量 y 和 n个区间 Xk 中的每个向量以及一组 n 个 PLS 回归向量之间开发了 n 个 PLS 模型,
哪里
哪里
组件
这里
外部预测集 Xu (X1,u ... 然后,X n,u) 可用于通过直接应用 SPLS 回归向量来预测依赖属性 yu 的值
如上式所示,将校准步骤中获得的每个区间 PLS 模型的加权预测相加,以根据所有区间模型的预测结果生成融合预测。通过这种方式,所有 n 个区间 PLS 模型都有助于预测,尽管它们的贡献不必相等甚至相似.
堆叠(将频谱的所有子集与一组非负的约束权重组合在一起)使SPLS 算法的预测性能至少等于iPLS 算法选择的任何单个区间的预测性能,例如,由 iPLS 算法选择的预测性能。假设 wk (k = 1, 2, ..., n) 是用于组合 ypred,k 的第 k 个权重,该权重从第 k 个 PLS 区间模型获得,并且
其中 y 是属性的引用值,
,这表示堆叠 PLS 模型的预测值比任何单个模型的预测值更接近参考值。然后
哪里
该结果表明 RMSEP (SPLS) <= RMSEP (iPLS),从上面看
RMSEP (SPLS)<= RMSEP (iPLS) <= RMSEP (PLS)
这些结果表明,从数据集创建的堆叠 PLS 模型的预测至少与基于该数据集的最佳单个子集的 iPLS 模型的预测一样精确,并且堆叠模型的预测结果始终至少与基于同一数据集构建的传统 PLS 模型的预测一样好。在两种情况下,使用 SPLS 算法开发的模型的预测性能与使用 iPLS 算法开发的模型的预测性能相同。第一种情况是所有区间模型都具有相同的预测性能,因此所有区间都是最佳子集,并且都具有相同的堆叠权重 (w1= w2 = ... = wn,其中
4.5.2.3 选择堆叠间隔
SPLS 算法包括一个交叉验证过程,用于确定堆叠模型最应包含的区间数。我们生成一个交叉验证表面,通过将交叉验证作为区间数和 LV 数的函数来优化堆叠回归方法的预测能力。在间隔数和考虑的 LV 数的范围内选择间隔数和适当的 LV 数,以最小化交叉验证的误差。一般来说,在表面测试的区间数量越多,结果越好,但实际上,25 或 30 个不相交区间足以区分此处检查的数据中最窄的目标属性。
iPLS 报告的交叉验证方法(如图 4.19 所示)从预先确定的区间数中选择一个最佳区间。然而,在这项工作中,我们使用用于优化 SPLS 模型的相同交叉验证表面来确定光谱被划分为 iPLS 回归的间隔数,以便直接比较方法.
图 4.19.玉米数据 (m5spec) 的 iPLS 模型的交叉验证 (RMSECV):(A) 油和 (B) 水分。每个条形中显示的数字代表每个区间中的潜在变量,线是校准数据的平均光谱,虚线是从从全光谱生成的 PLS 回归模型获得的 RMSECV 值.
4.5.3 SPLS 演示
Software 版本 python 2.7 和 Microsoft Windows7 操作系统。 Cross-validation 、 MinMaxScaler 和 train_test_split 分别 使用 sklearn 包执行。数据集加载是使用 scipy 包完成的,其他程序可以由个人实现。
# -*- 编码:UTF-8 -*-
从 scipy.io Import LoadMat
从 sklearn.cross_validation 导入train_test_split
从 STACK_PLS。Stack_PLS 导入Stack_pls
如果 __name__ == '__main__':
fname = loadmat('NIRcorn.mat')
x = fname['m5spec']['数据'][0][0]
y = fname['cornprop'][:, 3:4]
x_train、x_test、y_train、y_test = train_test_split(x, y, test_size=0.2, random_state=0)
演示 = Stack_pls(x_train, x_test, y_train, y_test, 组件=5, 折叠=5)
RMSEP = demo.stackPls(开始=3,结束=12,间隔=2)
打印 RMSEP
# -*- 编码:UTF-8 -*-
'''
创建于 2019.3.10
@author:zzh
'''
将 numpy 导入为 NP
from sklearn.preprocessing import MinMaxScaler
从 sklearn 导入 cross_validation
def权重(RMSECV,INTERVAL):
s = []
sum_s = 0
对于 i in range(INTERVAL):
s.append(1.0 / RMSECV[i])
sum_s = sum_s + s[i] * s[i]
Weight_mat = np.zeros((区间, 1))
对于 i in range(INTERVAL):
w = s[i] * s[i] / sum_s
Weight_mat[i] = w.ravel()
Weight_minmax = 最小最大缩放器((0, 1)).fit_transform(Weight_mat) #
Weight_minmax_sum = np.sum(Weight_minmax)
W_mat = Weight_minmax / Weight_minmax_sum
返回 W_mat
defcv(n_fold, x, y): #
KF = cross_validation。KFold(x.shape[0], n_fold)
x_train = []
y_train = []
x_test = []
y_test = []
对于 train_index,test_index 以 KF 为单位:
xtr、ytr = x[train_index]、y[train_index]
xte, yte = x[test_index], y[test_index]
x_train.append(xtr)
y_train.append(ytr)
x_test.append(xte)
y_test.append(yte)
返回 x_train、x_test、y_train y_test
# -*- 编码:UTF-8 -*-
'''
创建于 2019.3.10
@author:zzh
'''
将 numpy 导入为 NP
from select_interAndLv import select_interAndLv
from pls_split import pls_split
来自 PLS。NIPALS 进口_NIPALS
from function_cvAndWeight import cv, 权重
Stack_pls类():
def__init__(自身、x_train、x_test、y_train、y_test、组件、折叠):
self.x_train = x_train
自身.x_train = x_train
self.y_train = y_train
self.x_test = x_test
self.y_test = y_test
self.components = components
self.components = 组件
self.folds = folds
self.folds = 折叠
def stackPls(self, start, end, intervals):
defstackPls(自我、开始、结束、间隔):
'''选择最佳参数、最佳区间和最佳潜在变量 '''
演示 = select_interAndLv(self.x_train, self.y_train, start, end, intervals)
better_components, better_intervals = demo.select_interAndLv(self.components, self.folds)
打印'better:'、better_components、better_intervals
''' 根据最优参数计算交叉验证误差
RMSECV_list = 自我.get_rmsecv(better_components, better_intervals)
''' 根据交叉验证误差查找权重
W_mat = 权重 (RMSECV_list, better_intervals)
'''计算最终的 RMSEP'''
better_intervals_demo = pls_split(self.x_train, self.y_train)
better_split_list,better_intervals_list = better_intervals_demo.split(better_intervals)
y_predict = 0
对于 range (better_intervals) 中的 j:
xTrain = better_split_list[j]
区间 = better_intervals_list[j]
xTest = self.x_test[:, 区间[0]:区间[1]]
xtrMean = np.mean(xTrain, axis=0)
ytrMean = np.mean(自我.y_train, axis=0)
better_demo = _NIPALS(better_components)
coef_list = better_demo.fit(xTrain, self.y_train, better_components)
coef_B = coef_list[better_components - 1]
yte_predict = better_demo.predict(xTest, coef_B, xtrMean, ytrMean)
y_predict = np.add(y_predict, W_mat[j] * yte_predict)
按 = np.square(np.subtract(self.y_test, y_predict))
all_press = np.sum(press, axis=0)
RMSEP = np.sqrt(all_press / self.x_test.shape[0])
返回 RMSEP
defget_rmsecv(self, better_components, better_intervals):
rmsecv_list = []
x_train, x_test, y_train, y_test = cv(self.folds, self.x_train, self.y_train)
x_train、x_test、y_train、y_test = cv(self.folds, self.x_train, self.y_train)
for j in range(better_intervals):
对于 range (better_intervals) 中的 j:
RMSECV = 0
for i in range(self.folds):
对于 i 在 range(self.folds):
better_intervals_demo = pls_split(x_train[i], y_train[i])
better_intervals_demo = pls_split(x_train[i], y_train[i])
better_split_list, better_intervals_list = better_intervals_demo.split(better_intervals)
better_split_list,better_intervals_list = better_intervals_demo.split(better_intervals)
xTrain = better_split_list[j]
Intervals = better_intervals_list[j]
区间 = better_intervals_list[j]
xTest = x_test[i][:, Intervals[0]:Intervals[1]]
xTest = x_test[i][:, 区间[0]:区间[1]]
xtrMean = np.mean(xTrain, axis=0)
xtrMean = np.mean(xTrain, axis=0)
ytrMean = np.mean(y_train[i], axis=0)
ytrMean = np.mean(y_train[i], axis=0)
better_demo = _NIPALS(better_components)
coef_list = better_demo.fit(xTrain, y_train[i], better_components)
coef_list = better_demo.fit(xTrain, y_train[i], better_components)
coef_B = coef_list[better_components - 1]
yte_predict = better_demo.predict(xTest, coef_B, xtrMean, ytrMean)
yte_predict = better_demo.predict(xTest, coef_B, xtrMean, ytrMean)
PRESS = np.square(np.subtract(yte_predict, y_test[i]))
按 = np.square(np.subtract(yte_predict, y_test[i]))
all_PRESS = np.sum(PRESS, axis=0)
all_PRESS = np.sum(PRESS, axis=0)
rmsecv = np.sqrt(all_PRESS / y_test[i].shape[0])
rmsecv = np.sqrt(all_PRESS / y_test[i].shape[0])
RMSECV = RMSECV + rmsecv
rmsecv_list.append(RMSECV / 10)
返回 rmsecv_list
# -*- 编码:UTF-8 -*-
'''
创建于 2019.3.10
@author: ZZH
'''
from pls_split import pls_split
将 numpy 导入为 NP
来自 PLS。NIPALS 进口_NIPALS
from function_cvAndWeight import cv, 权重
select_interAndLv类():
def__init__(self, x_cal, y_cal, start, end, intervals):
self.x_cal = x_cal
self.y_cal = y_cal
self.start = 开始
self.end = 结束
self.intervals = 区间
defselect_interAndLv(自身, 组件, 折叠):
x_train、x_test、y_train、y_test = cv(折叠、.x_cal、.y_cal)
length = (self.end - self.start) / self.intervals #
length = (self.end - self.start) / self.intervals #
if (self.end - self.start) % self.intervals != 0 :
如果 (self.end - self.start) % self.intervals != 0 :
length = length + 1
长度 = 长度 + 1
error = np.zeros((components, length))
错误 = np.zeros((组件,长度))
对于范围 (folds) 中的 k:
我2 = 0
对于 i ,在 range(self.start, self.end, self.intervals) 中:
演示 = pls_split(x_train[k], y_train[k])
split_list,间隔 = demo.split(i)
对于 range(0, components) 中的 j:
rmsecv_list = []
Y_predict = np.zeros((y_test[k].shape[0], i))
对于范围 (i) 中的 i1:
better_components = j + 1
xTrain = split_list[i1]
间隔 = 间隔 [i1]
xTest = x_test[k][:, 区间[0]:区间[1]]
xtrMean = np.mean(xTrain, axis=0)
ytrMean = np.mean(y_train[k], axis=0)
better_demo = _NIPALS(better_components)
coef_list = better_demo.fit(xTrain, y_train[k], better_components)
coef_B = coef_list[better_components - 1]
yte_predict = better_demo.predict(xTest, coef_B, xtrMean, ytrMean)
Y_predict[:, i1] = yte_predict.ravel()
rmsecv = self.rmsecv(yte_predict, y_test[k])
rmsecv_list.append(rmsecv)
W_mat = 重量 (rmsecv_list, i)
y_predict = 0
对于范围 (i) 中的 i1:
y_predict = np.add(y_predict, W_mat[i1] * Y_predict[:, i1])
y_predict = y_predict.reshape(-1, 1)
y_predict = y_predict.reshape(-1, 1)
RMSECV = self.rmsecv(y_predict, y_test[k])
RMSECV = self.rmsecv(y_predict, y_test[k])
error[j, i2] = error[j, i2] + RMSECV
错误 [j, i2] = 错误 [j, i2] + RMSECV
i2 = i2 + 1
我2 = 我2 + 1
component_op,interval_op = self.get_cv_parameter(错误)
component_op = component_op + 1
interval_op = self.start + interval_op * self.intervals
返回 component_op, interval_op
defrmsecv(self, y_predict, y_measure):
''' 计算 RMSECV'''
按 = np.square(np.subtract(y_predict, y_measure))
all_PRESS = np.sum(PRESS, axis=0)
all_PRESS = np.sum(PRESS, axis=0)
RMSECV = np.sqrt(all_PRESS / y_measure.shape[0])
RMSECV = np.sqrt(all_PRESS / y_measure.shape[0])
return RMSECV
返回 RMSECV
def get_cv_parameter(self, error):
defget_cv_parameter(自我, 错误):
'''Find the subscript of the minimum cross validation error in the two-dimensional error list'''
'''在二维错误列表中查找最小交叉验证误差的下标'''
min_value = np.amin(error)
min_value = np.amin(错误)
component, interval = error.shape
组件,interval = error.shape
for i in range(component):
对于 Range (Component) 中的 i:
for j in range(interval):
对于 Range (interval) 中的 j:
如果 min_value == error[i, j]:
component_op、interval_op = i、j
返回 component_op, interval_op
# -*- 编码:UTF-8 -*-
'''
创建于 2019.3.10
@author:管理员
'''
将 numpy 导入为 NP
import scipy.io as sio
将 scipy.io 导入为 SIO
从 sklearn.cross_validation 导入train_test_split
class pls_split():
pls_split类():
def __init__(self, x_cal, y_cal):
def__init__(self, x_cal, y_cal):
self.x_cal = x_cal
self.y_cal = y_cal
def split(self, intervals): #
defsplit(self, intervals): #
n, m = np.shape(self.x_cal)
n, m = np.shape(自身.x_cal)
#
num = m / intervals #
num = m / 间隔#
mod = m % intervals #
mod = m % 区间#
before = num + 1
之前 = num + 1
split_list = []
intervals_list = []
for i in range(mod):
对于 i in range(mod):
self.intervals = self.x_cal[:, i * before:(i + 1) * before]
self.intervals = self.x_cal[:, i * 之前:(i + 1) * 之前]
split_list.append(self.intervals)
split_list.append(self.intervals)
before_intervals = (i * before, (i + 1) * before)
before_intervals = (i * 之前, (i + 1) * 之前)
intervals_list.append(before_intervals)
intervals_list.append(before_intervals)
before_num = mod * before
before_num = mod * 之前
behind = intervals - mod
behind = 区间 - mod
for i in range(behind):
对于 i 在范围内(后面):
self.intervals = self.x_cal[:, before_num + i * num:before_num + (i + 1) * num]
self.intervals = self.x_cal[:, before_num + i * num:before_num + (i + 1) * num]
split_list.append(self.intervals)
split_list.append(self.intervals)
behind_intervals = (before_num + i * num, before_num + (i + 1) * num)
behind_intervals = (before_num + i * num, before_num + (i + 1) * num)
intervals_list.append(behind_intervals)
intervals_list.append(behind_intervals)
return split_list, intervals_list
返回 split_list, intervals_list
4.5.4 Experiments
4.5.4 实验
4.5.4.1 Corn dataset
4.5.4.1 Corn 数据集
The corn data set was chosen to show the effects of the SPLS algorithms in this study, and to demonstrate how SPLS takes full advantage of the information contained in the spectrum. No pre-processing methods were used other than mean-centering. The result shown in Table 4.4 indicates that RMSEP of SPLS model
选择玉米数据集是为了显示 SPLS 算法在本研究中的效果,并演示 SPLS 如何充分利用光谱中包含的信息。除均值居中外,未使用任何预处理方法。表 4.4 所示的结果表明,SPLS 模型的 RMSEP.
Table 4.4 Summary of the SPLS models and properties
表 4.4 SPLS 模型和属性摘要.
|
| RMSECVmin | RMSEP |
| interval | |
|
| 0.00374 | 0.00221 | 14 | 4 | |
|
| 0.04423 | 0.04460 | 11 | 7 | |
|
| 0.04912 | 0.04042 | 12 | 5 | |
|
| 0.07798 | 0.09491 | 15 | 3 | |
|
| 0.11079 | 0.13279 | 9 | 3 | |
|
| 0.07205 | 0.07178 | 9 | 11 | |
|
| 0.10096 | 0.16395 | 12 | 9 | |
|
| 0.24694 | 0.34657 | 14 | 9 | |
|
| 0.10513 | 0.13043 | 14 | 9 | |
|
| 0.06874 | 0.09032 | 9 | 8 | |
|
| 0.10562 | 0.15136 | 8 | 5 | |
|
| 0.22725 | 0.32890 | 14 | 9 |
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
Interval: 仅当最低 RMSECV 时,才会选择最佳间隔数
PLS 的最大潜在变量数设置为 15,区间数设置为 [2, 12],区间为 2。对训练集应用双向交叉验证,以优化 LV 的数量和不相交的区间数量。图 4.20-4.22 分别为不同成分下玉米数据集 3 种仪器中参数选择的误差面.
无花果。4.20 使用 SPLS 对玉米数据进行交叉验证的 RMSECV 表面关于 m5spec 仪器
无花果。4.21 使用 SPLS 对玉米数据进行交叉验证的 RMSECV 表面关于 mp5spec 仪器
无花果。4.22 使用 SPLS 对玉米数据进行交叉验证的 RMSECV 表面关于 mp6规格仪器
为了更直观地比较 SPLS 算法的拟合效果,图 4.23-4.25 显示了校准集和测试集的测量值与预测值之间的关系。 如果模型预测得更好,则相应的点更接近线 y = x。SPLS 算法的预测性能可以根据 y = x 线附近数据点的集中程度来判断。
无花果。4.23 实际值与玉米数据集的预测值之比较。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
图 4.24 实际值与玉米数据集的预测值相比。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
无花果。4.25 实际值与玉米数据集的预测值之比较。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
4.5.4.2 WHeat 数据集
表 4.5 还列出了交叉验证集和校准集的不同 SPLS 模型的 RMSE。最佳潜在变量和最佳区间的数量是根据最低 RMSECV 标准确定的,并列在表 4.5 中。从中可以看出,从不同工具的 SPLS 回归中获得的 RMSEP 明显优于从常规 PLS 算法生成的 RMSEP.
Table 4.5 Summary of the PLS models and properties
表 4.5 PLS 模型和属性总结.
|
| RMSECVmin | RMSEP |
| interval | |
B1 |
| 0.34014 | 0.25129 | 9 | 4 | |
B2 |
| 0.34483 | 0.28004 | 9 | 4 | |
B3 |
| 0.34914 | 0.25440 | 8 | 4 | |
A1 |
| 0.23726 | 0.28232 | 7 | 6 | |
A2 |
| 0.24144 | 0.23129 | 7 | 6 | |
A3 |
| 0.22690 | 0.24835 | 7 | 6 |
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
Interval: The optimal number of interval is selected only when the lowest RMSECV
Interval: 仅当最低 RMSECV 时,才会选择最佳间隔数
Fig.4.26 shows the parameter selection process for two-way cross-validation. The lowest point in the figure represents the minimum RMSE of cross-validation dataset, and corresponding to the optimal parameters.
图4.图 26 显示了双向交叉验证的参数选择过程。图中的最低点表示交叉验证数据集的最小 RMSE,对应于最佳参数。
Fig.4.26 RMSECV surface of cross-validation using SPLS about the wheat dataset
无花果。426 使用 SPLS 对小麦数据集进行交叉验证的 RMSECV 表面
In addition, Fig.4.27 shows the relationship between the measured values and predicted values of the training set and test set for different SPLS models. We can see that each instrument has a good fitting effect in wheat dataset
此外,图 4.27 显示了不同 SPLS 模型的训练集和测试集的测量值与预测值之间的关系。我们可以看到,每种工具在小麦数据集中都有很好的拟合效果.
Fig.4.27 The actual value compared with the predicted value about the wheat dataset. The blue and red dots represent the results for each sample in the train set and test set, respectively.
无花果。4.27 小麦数据集的实际值与预测值的比较。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
4.5.4.3 Pharmaceutical tablet dataset
4.5.4.3 药片数据集
This section uses the pharmaceutical data set for experiments. Table 4.6 lists the relevant attributes of different SPLS models. The number of optimal latent variables and optimal intervals was determined based on the minimum RMSECV criteria. The optimal number of latent variables is 10, 11, 11, 14, 13 and 15, respectively. The optimal number of intervals is 4, 10, 4, 4, 8 and 8, respectively.
本节使用 pharmaceical 数据集进行实验。表 4.6 列出了不同 SPLS 模型的相关属性。根据最小 RMSECV 标准确定最佳潜在变量的数量和最佳区间。潜在变量的最佳数量分别为 10、11、11、14、13 和 15。 区间s 的最佳数量 分别为 4、10、4、4、8 和 8。
Table 4.6 Summary of the PLS models and properties
表 4.6 PLS 模型和属性总结.
|
| RMSECVmin | RMSEP |
| interval | |
|
| 2.70823 | 2.70606 | 10 | 4 | |
|
| 1.17227 | 0.80420 | 11 | 10 | |
|
| 3.72854 | 4.5534 | 11 | 4 | |
|
| 2.62623 | 2.80926 | 14 | 4 | |
|
| 1.19022 | 0.72491 | 13 | 8 | |
|
| 3.79775 | 5.17384 | 15 | 8 |
RMSEP:测试集的均方根误差
RMSECV最小 Cross-V alidation 的最小均方根误差
LV:只有当最低 RMSECV 时,才会选择 l个变量s 的最佳数量
Interval: 仅当最低 RMSECV 时,才会选择最佳间隔数
双向交叉验证用于选择参数,并找到最佳区间数和潜在变量。图 4.19 显示了不同仪器下药物数据集的 SPLS 模型的 RMSECV 误差面。误差表面的最低点对应于最佳参数.
Fig.4.28 RMSECV surface of cross-validation using SPLS about the pharmaceutical dataset
无花果。 4.28 使用 SPLS 对 pharmaceutical 数据集进行交叉验证的 RMSECV 表面
Fig 4.29 shows a comparison of expected and predicted concentrations for different SPLS models of the pharmaceutical data set, respectively. It can be seen that a good correlation was found between the expected concentration and the predicted concentration, which confirms the good performance of the SPLS model.
图 4.29 分别显示了 p 质量数据集的不同 SPLS 模型的预期浓度和预测浓度的比较。可以看出,预期浓度和预测浓度之间发现了良好的相关性,这证实了 SPLS 模型的良好性能。
Fig.4.29 The actual value compared with the predicted value about the pharmaceutical dataset. The blue and red dots represent the results for each sample in the train set and test set, respectively.
无花果。 4.29 实际值与 p harmaceutical 数据集的预测值相比。 蓝点和红点分别表示训练集和测试集中每个样本的结果。
4.5.5 Reference
4.5.5 参考文档
XU Liang, Schechter I. Wavelength selection for simultaneous spectroscopic analysis: experimental and theoretical study. Anal. Chem. 1996; 68: 2392–2400.
XULiang, Schechter I. 同步光谱分析的波长选择:实验和理论研究。 Anal. 化学。 1996;68:2392–2400。
Ho¨skuldsson A. Variable and subset selection in PLS regression. Chemom. Intell. Lab. Syst., Lab. Inf. Manag. 2001; 55: 23–38.
H. PLS 回归中的变量和子集选择。 化疗。英特尔。实验室系统。, Lab. Inf. Manag. 2001;55: 23-38.
Nørgaard L, Saudaland A, Wagner J, Nielsen JP, Munck L, Engelsen SB. Interval partial least-squares regression (iPLS): a comparative chemometric study with an example from near-infrared spectroscopy. Appl. Spectrosc. 2000; 54: 413–419.
Nørgaard L, Saudaland A, Wagner J, Nielsen JP, Munck L, Engelsen SB. 区间偏最小二乘回归 (iPLS):一项比较化学计量学研究,以近红外光谱学为例。 应用光谱。 2000;54:413–419。
JIANG Jianhui, Berry RJ, Siesler HW, Ozaki Y. Wavelength interval selection in multicomponent spectral analysis by moving window partial least-squares regression with applications to mid-infrared and near infrared spectroscopic data. Anal. Chem. 2002; 74: 3555–3565.
JIANG, Jianhui, Berry RJ, Siesler HW, Ozaki Y. 通过移动窗口偏最小二乘回归在多分量光谱分析中进行波长间隔选择,并应用于中红外和近红外光谱数据。 Anal. 化学。 2002;74:3555–3565。
Centner V, Massart DL, Noord OE, Jong SD, Vandeginste BM, Sterna C. Elimination of uninformative variables for multivariate calibration. Anal. Chem. 1996; 68: 3851–3858.
Centner V, Massart DL, Noord OE, Jong SD, Vandeginste BM, Sterna C. 消除多变量校准的无信息变量。 Anal. 化学。 1996;68:3851–3858。
Shane MC, Cameron BD, Cote GL, Spiegelman CH. A novel peak-hopping stepwise feature selection method with application to Raman spectroscopy. Anal. Chim. Acta 1999; 338: 251–264.
Shane MC、Cameron BD、Cote GL、Spiegelman CH。一种应用于拉曼光谱的新型跳跃峰逐步特征选择方法。肛门。Acta 1999;338:251-264。
Leardi R. Application of genetic algorithm-PLS for feature selection in spectral data sets. J. Chemometrics 2000; 14: 643–655.
Leardi R. 遗传算法 PLS 在光谱数据集中特征选择的应用。 J. 化学计量学 2000;14:643-655。
Leardi R, Nørgaard L. Sequential application of backward interval partial least squares and genetic algorithms for the selection of relevant spectral regions. J. Chemometrics 2004; 18: 486–497.
Leardi R, Nørgaard L. 后向区间偏最小二乘法和遗传算法在选择相关光谱区域方面的顺序应用。 J. 化学计量学 2004;18:486-497。
TAN HW, Brown SD. Multivariate calibration of spectral data using dual-domain regression analysis. Anal. Chim. Acta 2003; 490: 291–301.
TAN HW, Brown SD. 使用双域回归分析对光谱数据进行多变量校准。 肛门。Acta 2003;490:291-301。
TAN Huwei, Brown SD. Dual domain regression analysis for spectral calibration models. J. Chemometrics 2003; 17: 111–122.
光谱校准模型的双域回归分析。 J. 化学计量学 2003;17:111-122。
Breiman L. Stacked regressions. Mach. Learn. 1996; 24: 49–64.
Breiman L. 堆叠回归。 马赫学习。1996;24: 49–64.
Pottmann M, Ogunnaike BA, Schwaber JS. Development and implementation of a high-performance sensor system for an industrial polymer reactor. Ind. Eng. Chem. Res. 2005; 44: 2606–2630.
Pottmann M, Ogunnaike BA, Schwaber JS.开发和实施用于工业聚合物反应器的高性能传感器系统。Ind. Eng. Chem. Res. 2005;44:2606–2630。
Fortuna L, Graziani S, Napoli G, Xibilia MG. Stacking approaches for the design of a soft sensor for sulfur recovery unit. 32nd Annual Conference of the IEEE Industrial Electronics, 2006; 229–234.
硫回收装置软传感器设计的堆叠方法。 第 32 届 IEEE 工业电子年会,2006 年;229–234。
Hibon M, Evgeniou T. To combine or not to combine, selecting among forecasts and their combinations. Int. J. Forecast. 2005; 21: 15–24.
Hibon M, Evgeniou T.To combine or not to combine, 在预测及其组合中进行选择。国际预测杂志。2005;21:15-24。
XU Lu, ZHOU Yanping, Tang Lijuan,et al, YURQ. Ensemble preprocessing of near-infrared (NIR) spectra for multivariate calibration. Anal. Chim. Acta 2008; 616: 138–143.
徐璐, 周燕平, 唐丽娟,等, YURQ.用于多变量校准的近红外 (NIR) 光谱的集成预处理。肛门。Acta 2008;616: 138–143.
1 本章节内容主要参考:Rosipal, Roman, and Nicole Krämer. "Overview and Recent Advances in Partial Least Squares." (2005).
1本章节内容主要参考:Rosipal, Roman, and Nicole Krämer.“偏最小二乘法的概述和最新进展。”(2005 年)。
1 本章节内容主要参考:J, Sijmen De. "SIMPLS: An alternative approach to partial least squares regression." Chemometrics & Intelligent Laboratory Systems 18.3(1993):251-263.
1本章节内容主要参考:J, Sijmen De.“SIMPLS:偏最小二乘回归的替代方法。” 化学计量学与智能实验室系统18.3(1993):251-263。
1 本章节内容主要参考:Ni, Wangdong, S. D. Brown, and R. Man. "Stacked partial least squares regression for spectral calibration and prediction." Journal of Chemometrics 23.10(2009):505-517.
1本章节内容主要参考:Ni, Wangdong, S. D. Brown, and R. Man. “用于光谱校准和预测的堆叠偏最小二乘回归。” 化学计量学 杂志 23.10(2009):505-517。
5. Regularization
5. 正则化
A core problem in machine learning is to design algorithms that not only perform well on training data, but also generalize well on new inputs. In machine learning, many strategies are explicitly designed to reduce test errors (possibly at the expense of increasing training errors). These strategies are collectively referred to as regularization. Machine learners can use many different forms of regularization strategies. In fact, developing a more effective regularization strategy has become one of the main research works in this field.
机器学习的一个核心问题是设计算法,这些算法不仅在训练数据上表现良好,而且在新输入上也能很好地泛化。在机器学习中,许多策略都是为了减少测试误差而设计的(可能以增加训练误差为代价)。这些策略统称为正则化。机器学习器可以使用许多不同形式的正则化策略。事实上,开发更有效的正则化策略已成为该领域的主要研究工作之一。
5.1 Regularization
5.1正则化
5.1.1 Classification
5.1.1 分类
One use of regularization is in classification. Empirical learning of classifiers (from a finite data set) is always an underdetermined problem, because it attempts to infer a function of any x given only examples x1, x2,…, xn
正则化的一个用途是分类。分类器的实证学习(从有限数据集)始终是一个不确定的问题,因为它试图推断任何 x 的函数,仅给出示例 x1, x2...、 xn.
A regularization term (or regularizer) R(f) is added to a loss function
将正则化项(或正则化器)R(f) 添加到损失函数中:
where V is an underlying loss function that describes the cost of predicting f (x) when the label is y, such as the square loss or hinge loss; and
其中 V 是一个基础损失函数,它描述了当标签为 y 时预测 f (x) 的成本,例如平方损失或铰链损失;和
A theoretical justification for regularization is that it attempts to impose Occam's razor on the solution. From a Bayesian point of view, many regularization techniques correspond to imposing certain prior distributions on model parameters.
正则化的理论理由是它试图将奥卡姆剃刀强加 于解上。 从贝叶斯 的角度来看,许多正则化技术对应于对模型参数施加某些 先验 分布。
Regularization can serve multiple purposes, including learning simpler models, inducing models to be sparse and introducing group structure[clarification needed] into the learning problem.
正则化可以有多种用途,包括学习更简单的模型、使模型稀疏以及在学习问题中引入组结构 [需要澄清]。
The same idea arose in many fields of science. For example, the least-squares method can be viewed as a simple form of regularization, if the regularization term
同样的想法出现在许多科学领域。例如,最小二乘法可以被视为正则化的一种简单形式,如果正则化项
5.1.2 Tikhonov regularization
5.1.2 吉洪诺夫正则化
When learning a linear function f, characterized by an unknown vector w such that
当学习线性函数 f 时,该函数由未知向量 w 表征,使得
In the case of a general function, we take the norm of the function in its reproducing kernel Hilbert space
在一般函数的情况下,我们取函数在其再现核 Hilbert 空间中的范数:
As the L2 norm is differentiable, learning problems using Tikhonov regularization can be solved by gradient descent
由于 L2 范数是可微的,因此使用 Tikhonov 正则化的学习问题可以通过梯度下降来解决.
5.1.3 Regularizers for sparsity
5.1.3 稀疏的正则化器
5.1.3.1 Proximal methods
5.1.3.1 近端方法
While the L1 norm does not result in an NP-hard problem, the L1 norm is convex but is not strictly differentiable due to the kink at x = 0. Subgradient methods which rely on the subderivative can be used to solve L1 regularized learning problems. However, faster convergence can be achieved through proximal methods.
虽然 L1 范数不会导致 NP 困难问题,但 L1 范数是凸的,但由于 x = 0 处的扭结,因此并不严格不同。依赖于次导数的次梯度方法 可用于解决 L1正则化学习问题。然而,可以通过 proximal 方法实现更快的收敛。
For a problem
对于问题
and then iterate
,然后迭代
The proximal method iteratively performs gradient descent and then projects the result back into the space permitted by R.
proximal 方法迭代执行梯度下降,然后将结果投影回 R 允许的空间中。
When R is the L1 regularizer, the proximal operator is equivalent to the soft-thresholding operator,
当 R 是 L1正则化器时,邻近运算符等效于软阈值运算符
This allows for efficient computation.
这允许高效的计算。
5.1.3.2 Group sparsity without overlaps
5.1.3.2 无重叠的组稀疏性
Groups of features can be regularized by a sparsity constraint, which can be useful for expressing certain prior knowledge into an optimization problem.
特征组可以通过稀疏约束进行正则化,这对于将某些先验知识表达到优化问题中非常有用。
In the case of a linear model with non-overlapping known groups, a regularizer can be defined:
对于具有不重叠的已知组的线性模型,可以定义正则化器:
This can be viewed as inducing a regularizer over the L2 norm over members of each group followed by an L1 norm over groups.
这可以看作是在每个组的成员上诱导一个超过 L2 范数的正则化器,然后对每个组的 L1 范数产生正则化器。
This can be solved by the proximal method, where the proximal operator is a block-wise soft-thresholding function:
这可以通过 proximal 方法解决,其中 proximal 运算符是按块的软阈值函数:
5.1.3.3 Group sparsity with overlaps
5.1.3.3 重叠的组稀疏性
The algorithm described for group sparsity without overlaps can be applied to the case where groups do overlap, in certain situations. This will likely result in some groups with all zero elements, and other groups with some non-zero and some zero elements.
在某些情况下,为无重叠的组稀疏性描述的算法可应用于组重叠的情况。这可能会导致一些组包含全部零元素,而另一些组包含一些非零和一些零元素。
If it is desired to preserve the group structure, a new regularizer can be defined:
如果需要保留组结构,可以定义一个新的正则化器:
For each
对于每个
5.1.4 Other uses of regularization in statistics and machine learning
5.1.4 正则化在统计和机器学习中的其他用途
Bayesian learning methods make use of a prior probability that (usually) gives lower probability to more complex models. Well-known model selection techniques include the Akaike information criterion (AIC), minimum description length (MDL), and the Bayesian information criterion (BIC). Alternative methods of controlling overfitting not involving regularization include cross-validation.
贝叶斯学习 方法利用先 验概率,该概率 (通常)为更复杂的模型提供较低的概率。众所周知的模型选择技术包括Akaike 信息准则 (AIC)、 最小描述长度 (MDL) 和 贝叶斯信息准则 (BIC)。控制不涉及正则化的过拟合的替代方法包括交叉验证。
Table 5.1 Examples of applications of different methods of regularization to the linear model are:
表 5.1 不同正则化方法对 线性模型的 应用示例是:
Model | Fit measure | Entropy measure |
(Akaike information criterion)AIC/(Bayesian information criterion)BIC | ||
Ridge regression | ||
Lasso | ||
Basis pursuit denoising | ||
Rudin–Osher–Fatemi model | ||
Potts model | ||
Regularized Least Absolute Deviations Regression(RLAD) | ||
Dantzig Selector |
5.2 Ridge Regression: Biased Estimation for Nonorthogonal Problems
5.2 Ridge 回归:非正交概率 ms 的偏估计
Consider the standard model for multiple linear regression,
考虑多元线性回归的标准模型
The usual estimation procedure for the unknown
未知的常用估计程序
Estimation based on the matrix
基于矩阵的估计
5.2.1 Properties of best linear unbiased estimation
5.2.1 最佳线性无偏估计的 P 参数
Using unbiased linear estimation with minimum variance or maximum likelihood estimation when the random vector
当随机向量
as an estimate of
作为
The properties of
的特性
(i)
(一)
(ii)
(二)
or equivalently
或同等
(5.2.5a)
When the error
当出现错误
These related properties show the uncertainty in
这些相关属性显示了
then the average value of the squared distance from
则
and the variance when the error is normal is given by
误差为正态时的方差由下式给出
Lower bounds for the average and variance are
平均值和方差的下限为
The least squares estimate equation 5.2.1 suffers from the deficiency of mathematical optimization techniques that give point estimates; the estimation procedure does not have built into it a method for portraying the sensitivity of the solution equation 5.2.1 to the optimization criterion equation 5.2.2. The procedures to be discussed in the sections to follow portray the sensitivity of the solutions and utilize nonsensitivity as an aid to analysis.
最小二乘估计方程5.2.1 存在给出点估计的数学优化技术的缺陷;估计过程没有内置一种方法来描述解方程5.2.1 对优化准则方程5.2.2 的敏感性.在要遵循的部分中要讨论的步骤描述了解决方案的灵敏度,并利用不敏感度作为分析的辅助工具。
5.2.2 Ridge Regression
5.2.2 Ridge 回归
A. E. Hoerl first suggested in 1962 (Hoerl 1962[2]; Hoerl and Kennard 1968[3]) that to control the inflation and general instability associated with the least squares estimates, one can use
A. E. Hoerl 于 1962 年首次提出(Hoerl 1962[2];Hoerl 和 Kennard 1968[3]),为了控制与最小二乘估计相关的通货膨胀和一般不稳定性,可以使用
The family of estimates given by
由下式给出的估计值族
This relationship will be explored further in subsequent sections. Some properties of
这种关系将在后续部分中进一步探讨。的一些属性
(i) Let
(i) 让
哪里
(ii)
(二)
The relationship is readily verified by writing
这种关系很容易通过编写来验证
(iii)
(三)
By definition
根据定义
But
但
For an estimate
对于估计
which can be written in the form
可以写成
The expression shows that
表达式表明
5.2.3 The ridge trace
5.2.3 山脊痕迹
5.2.3.1 Definition of the Ridge Trace
5.2.31 Ridge Trace 的定义
When
什么时候
5.2.3.2 Characterization of the Ridge Trace
5.2.32 Ridge Trace 的特征
Let
让
Contours of constant
常数的等值线
The ridge trace can be shown to be following a path through the sums of squares surface so that for a fixed
脊轨迹可以显示为沿着穿过平方和表面的路径,因此对于固定的
Minimize
最小化
As a Lagrangian problem this is minimize
作为一个拉格朗日问题,这是 minimize
where
哪里
This reduces to
这简化为
where k is chosen to satisfy the restraint . This is the ridge estimator. Of course, in practice it is easier to choose a
其中 k 被选中来满足约束 。这是山脊估计器。当然,在实践中,选择
A completely equivalent statement of the path is this: If the squared length of the regression vector
路径的完全等效语句是这样的:如果回归向量的平方长度
5.2.3.3 Likelihood Characterization of the Ridge Trace
5.2.33 Ridge 轨迹的可能性表征
Using the assumption that the error vector is Normal
使用误差向量为 Normal 的假设
The kernel of this function is the quadratic form in the exponential which can be written in the form
此函数的内核是指数中的二次形式,可以写成以下形式
With , this shows that an increase in the residual sum of squares is equivalent to a decrease in the value of the likelihood function. So the contours of equal likelihood also lie on the surface of hyperellipsoids centered at
其中 ,这表明残差平方和的增加等同于似然函数值的减小。因此,等似然的等值线也位于以
The ridge trace can thereby be interpreted as a path through the likelihood space, and the question arises as why this particular path can be of special interest. The reasoning is the same as for the sum of squares. Although long vectors give the same likelihood values as shorter vectors, they will not always have equal physical meaning. Implied is a restraint on the possible values of
因此,ridge trace 可以解释为通过似然空间的路径,问题出现了为什么这条特定路径会引起特别的兴趣。其推理与平方和相同。尽管长向量给出与短向量相同的似然值,但它们并不总是具有相同的物理意义。Implied 是对
5.2.4 Mean square error properties of Ridge Regression
5.2.4 Ridge Regression 的 M ean 方误差特性
5.2.4.1 Variance and Bias of a Ridge Estimator
5.2.4.1 Ridge Estimator 的方差和偏差
要查看
分解的两个要素的含义,
然后
所有 的方差之和
图5.1 以定性形式显示方差、平方偏差和参数之间的关系
因此
图例.5.1 以定性形式显示方差、平方偏差和参数之间的关系
5.2.4.2 均方函数定理
定理 5.2.1.总方差
推论 1 关于总方差的 k 的一阶导数
该定理和推论都很容易通过使用
定理 5.2.2.平方偏差
证明:来自
推论 2.总方差的一阶导数
该定理和推论都很容易通过使用
如果
因为
因为
推论 3.平方偏差
证明:来自
推论 4.导数
证据:从 5.2.39 开始,很容易确定
sum 中的每个术语
定理 5.2.3.(存在定理)始终存在一个
证明:来自 5.2.34、5.2.37 和 5.2.42 的
首先请注意,
5.2.4.3 关于均方误差函数的一些评论
的特性
5.2.5 Ridge 回归的一般形式
始终可以简化 Introduction 中定义的一般线性回归问题,以达到规范形式,其中
和
哪里
然后,一般的山脊估计过程由
哪里
第 5.2.4 节中给出的所有基本结果都可以证明适用于这个更一般的表述。最重要的是,有一个等价于存在定理,定理 4.3。在一般形式中;一个寻求
5.2.6 对回归中的其他工作感到欣喜
岭回归与回归分析的其他方法有接触点,并且可以使用相同的目标。应该提到三个。
Stein (1960[13], 1962[14])以及 James 和 Stein (1961) 研究了均方误差的改善,方法是对
贝叶斯回归方法可以在 Jeffreys (1961[15])以及 Raiffa 和 Schlaifer (1961[16] 中找到)。在这种情况下,根据给出回归系数,可以将每个山脊估计值视为后验平均值,
5.2.7 选择更好的估计值
在 Section 5.2.2 和 Section 5.2.3 的示例中,已经证明了回归向量的普通最小二乘估计
使用
根据经验,实现更好估计的最佳方法
在某个值
系数对于它们所代表变化率的因子来说,不会具有不合理的绝对值。
在 处具有明显不正确符号的系数
残差平方和不会膨胀到不合理的值。它不会相对于最小残差平方和大,也不会相对于生成数据的过程的合理方差大。
另一种方法是使用
通过转换将系统减少为规范
确定最佳估计值
这
5.2.8参考资料
Scott, J. T., Jr. “因子分析和回归”,计量经济学,(1966),34,552-562。
Hoerl, A. E. “岭分析在回归问题中的应用”,化学工程进展,(1962),58,54-59。
Hoerl, A. E. 和 Kennard, R. W. “关于回归分析和偏差估计”,技术计量学,(1968),10,422-423。
Hoerl, A. E. “山脊分析”,化学工程进展研讨会系列,(1964),60,67-77。
谢夫,H.方差分析,纽约:Wiley。 (1960 年)。
Beale, E. M. L., Kendall, M. G., and Mann, D. W. “多变量分析中的变量”,Biometrika,(1967),54,356-366。
Efroymson, M. A. “多元回归分析”,载于《数字计算机的数学方法》,A. Ralston 和 H. S. Wilf 编辑,纽约:Wiley,第 17 章。 (1960 年)。
Garside, MJ “多元回归分析中的最佳子集”,应用统计学,14。 (1965 年)。
Gorman, J. W. 和 Toman, R. J. “选择用于将方程拟合到数据的变量”,Technometrics,(1966),8,27-51。
Hocking, R. R. 和 Leslie, R. N. “在回归分析中选择最佳子集”,Technometrics,(1967),9,531-540。
Jeffers, J. N. R. “主成分分析应用中的两个案例研究”,应用统计学,(1967),16,225-236。
James, W. 和 Stein, C. M. “二次损失估计”,第 4 届伯克利研讨会论文集,(1961 年),1,361-379。
13 Stein, C. M. “多元回归”,载于《纪念哈罗德·霍特林的论文》,斯坦福,加利福尼亚州:斯坦福大学出版社,第 37 章。 (1960 年)。
Stein, C. M. “多元正态分布平均值的置信度集”,《皇家统计学会杂志》,Ser. B,(1962),24,265-296。
Jeffreys, H. 概率论(第 3 版),伦敦:牛津大学出版社。 (1961 年)。
Raiffa, H. 和 Schlaifer, R. 应用统计决策理论,波士顿:哈佛大学出版社。 (1961 年)。
Balakrishnan, A. V. “一类控制问题的算子理论公式和最陡下降的解决方案”,《控制杂志》,(1963),1,109-127。
Discardin Clutton-Brock, M. “使用观测值估计先验分布”,《皇家统计学会杂志》,Ser. B,(1965),27,17-27。
Hoerl, AE 和 Kennard, RW “岭回归。非正交问题的应用“,《计量技术学》,12。 (1970 年)。
5.3 套索
我们提出了一种线性模型中的估计新方法。'套索' 在系数的绝对值之和小于常数的情况下最小化残差平方和。由于此约束的性质,它倾向于产生一些正好为 0 的系数,因此给出可解释的模型。与 Donoho 和 Johnstone 最近的自适应函数估计工作也有一个有趣的关系。套索的概念非常笼统,可以应用于各种统计模型:简要介绍了广义回归模型和基于树的模型的扩展.
5.3.1 简介
考虑通常的回归情况:我们有数据 (x, y),i = 1, 2, ..., N,其中 x = (xi1,.. ., xP)T 和 y 是第 i 个观测值的回归变量和响应。普通最小二乘法 (OLS) 估计值是通过最小化残差平方误差获得的。data2 分析师经常对 OLS 估计值不满意的原因有两个。首先是预测准确性:OLS 估计通常具有低偏差但方差大;有时可以通过缩小某些系数或将某些系数设置为 0 来提高预测准确性。通过这样做,我们牺牲了一点偏差来减少预测值的方差,因此可以提高整体预测准确性。第二个原因是解释。由于预测变量数量众多,我们通常希望确定一个表现出最强效应的较小子集.
用于改进 OLS 估计值的两种标准方法(子集选择和岭回归)都有缺点。子集选择提供了可解释的模型,但可能非常可变,因为它是一个离散的过程 - 回归变量要么被保留,要么从模型中删除。数据的微小变化可能会导致选择截然不同的模型,这会降低其预测准确性。岭回归是一个连续的过程,它缩小了系数,因此更稳定:但是,它不会将任何系数设置为 0,因此不会给出易于解释的模型.
提出了一种称为套索的新技术,用于“最小绝对收缩和选择运算符”。它缩小了一些系数并将其他系数设置为 0,因此尝试保留子集选择和岭回归的良好特征.
5.3.2 套索理论
5.3.2.1 定义
假设我们有数据 (x, y), i = 1, 2, ..., N,其中 x = (x1, ... xip)T 是预测变量,y 是响应。与通常的回归设置一样,我们假设观测值是独立的,或者给定 xij s ,y s 在条件上是独立的。我们假设 xij 是标准化的,因此
让
(5.3.1)
这里 t >= 0 是一个调整参数。现在,对于所有 t,为
方程 (5.3.1) 的解的计算是一个具有线性不等式约束的二次规划问题.
参数 t >= 0 控制应用于估计值的收缩量。让
套索的动机来自 Breiman (1993) 的一个有趣的提议[1]。Breiman 的非负garotte 最小化s
(5.3.2)
Garotte 从 OLS 估计值开始,然后按总和受约束的非负因子收缩 OLS 估计值。在广泛的仿真研究中,Breiman 表明,Garotte 的预测误差始终低于子集选择,并且与岭回归具有竞争力,除非真实模型具有许多小的非零系数.
garotte 的一个缺点是它的解取决于 OLS 估计值的符号和量级。在 OLS 估计表现不佳的过拟合或高度相关的设置中,Garotte 可能会因此受到影响。相比之下,套索避免了显式使用 OLS 估计值。
Frank 和 Friedman (1993)[5] 提议在参数的 L q-范数上使用边界,其中 q 是大于或等于 0 的某个数字;套索对应于 q = 1。
5.3.2.2 Orthonormal 设计案例
可以从正交设计案例中收集有关收缩性质的见解。设 X 为第 ij 个条目为 x ij 的 n x p 设计矩阵,并假设 XTX = I,即单位矩阵。
方程 (5.3.1) 很容易证明是
(5.3.3)
哪里
在正交设计情况下,大小为 k 的最佳子集选择减少为选择绝对值中 k 个最大系数,并将其余系数设置为 0。对于一些选择
或者等效地最小化
(5.3.4)
岭回归解决方案包括
哪里
图 5.2 显示了这些函数的形式。岭回归按常数因子缩放系数,而套索按常数因子转换,在 0 处截断。garotte 函数与套索非常相似,系数越大,收缩率越小。正如我们的仿真将表明的那样,当设计不是正交的时,套索和石榴石之间的差异可能会很大.
5.3.2.3 套索的几何图形
从图 5.2 中可以清楚地看出为什么套索经常产生正好为 0 的系数。为什么在一般(非正交)环境中会发生这种情况?以及为什么使用 constraint
标准
(加上一个常量)。该函数的椭圆轮廓由图 1 中的完整曲线显示。5.3(a);它们在OLS 估计中是 cent ere d;约束区域是旋转的正方形。套索解决方案是轮廓接触正方形的第一个位置,这有时会发生在对应于零系数的拐角处。岭回归的图片如图 1 所示。5.3(b):轮廓没有拐角,因此很少会产生零解。
从这张图片中出现了一个有趣的问题:套索估计的符号是否与最小二乘估计的符号不同
无花果。 5.2.(a) 子集回归,(b) 脊回归,(c) 套索和 (d) 石膏:------,正交设计情况下系数收缩的形式;......,45o 线供参考
无花果。 5.3. (a) 套索和 (b) ridge 回归的估计图片
无花果。 5.4.(a) 套索估计值落在与总体最小二乘估计值不同的八分位数中的示例;(b) 俯视图
而 garotte 保留了每个
5.3.2.4 更多关于双预测变量情况
假设 p = 2,并在不损失一般性的情况下假设最小二乘估计
图 5.5.套索 (—) 和岭回归 (----) 对于双预测变量示例:曲线显示
哪里
相反,岭回归收缩的形式取决于预测变量的相关性。图 5.5.显示了一个示例。我们从模型 y = 6x1 + 3x2 中生成了 100 个数据点,没有噪声。其中 x 和 x2 是具有相关性 ρ 的标准正态变量。图 5.4 中的曲线显示了 ridge 和 lasso 估计值作为
5.3.2.5 标准错误
由于套索估计值是响应值的非线性且不可微分的函数,即使对于固定值 t,也很难获得其标准误差的准确估计值。一种方法是通过 bootstrap:t 可以是固定的,或者我们可以为每个 bootstrap 样本优化 t。修复 t 类似于选择最佳子集,然后对该子集使用最小二乘标准误差.
可以通过写下罚分来得出近似的封闭式估计值
哪里
这个近似值还提出了一种迭代的岭回归算法来计算套索估计值本身,但事实证明这是相当低效的。但是,它对于选择套索参数 t 很有用.
5.3.3 参考
Breiman, L. (1993) 使用非负 garotte 更好的子集选择。 技术报告。 加州大学伯克利分校。
Donoho, D. 和 Johnstone, I. (1994) 小波收缩的理想空间适应。 生物气象学,81,425-455。
Donoho, D. L., Johnstone, I. M., Hoch, JC 和 Stern, A. S. (1992) 最大熵和近乎黑色的物体(含讨论)。 JR Statist. Soc. B,54,41-81。
Donoho, D. L., Johnstone, IM, Kerkyacharian, G. 和 Picard, D. (1995) 小波收缩;渐近?JR Statist。Soc. B, 57, 301-337.
Frank, I. 和 Friedman, J. (1993) 一些化学计量学回归工具的统计视图(含讨论)。 技术计量学, 35, 109-148.
1本节内容主要参考:Hoerl, Arthur E., and R. W. Kennard.“Ridge 回归:非正交问题的偏差估计。” 技术计量 学 12.1(1970):55-67。
1本节内容主要参考:Tibshirani, Robert.“通过套索进行回归收缩和选择”皇家统计学会杂志 B 系列(方法学) 58.1(1996):267-288。
5.4 Ridge 回归和 Lasso 回归的例子
5.4.1 E示例
在本节中,我们编译代码以显示 对应于不同正则化系数的拟合曲线
Ridge 和 Lasso 的 ficients。 其中 x 是从 0 到 9 的均匀间隔数组,其大小为
numpy.random.seed(seed=无)
为生成器设定种子。
numpy.random.randn(d0, d1, ..., dn)来访问:
从 “standard normal” 分布中返回一个样本(或多个样本)。
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
返回指定间隔内均匀分布的数字。
返回按区间 [start, stop] 计算的均匀间距样本数。
可以选择排除间隔的端点。
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0):
返回在对数刻度上均匀分布的数字。
example.py | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #-*-coding:utf-8-*- from sklearn.linear_model import Lasso
N = 20
|
图5.6. Ridge regressionfitting curves
图5.7. Lasso regression fitting curves
在这两个图中,d不同的颜色对应于不同的正则化系数。 无花果。 5.6. 显示了 Ridge 图中不同正则化系数的拟合曲线s。 5.7 显示了 Lasso 中不同正则化系数的 拟合曲线s。
5.4 2实用 Example
在本节中,我们展示了 Ridge 和 Lasso 在玉米数据集上的实际应用。我们使用 LassoCV 和 RidgeCV 中的交叉验证来选择正则化系数同时与线性回归进行比较 最后,四个成分(水分、油、蛋白质、淀粉)的正则化系数和预测的均方根误差 (RMSEP) 列出了与 Corn 数据集中的三种工具相对应的工具。
example.py | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #-*-coding:utf-8-*-
|
图5.8 玉米数据中M5仪器的测量值与预测值
图5.9. 玉米数据集中 MP5 仪器的测量值与预测值
图5.10. 玉米数据集中 MP6 仪器的测量值与预测值
无花果。 5.8. 显示了 M5 工具四个组成部分的 m个估计值与 LinearRegression、Ridge 和 Lasso 的预测值的比较。从这四个图中,我们可以发现 LinearRegression在四个分量中表现出最佳性能。
无花果。 5.9. 显示了 M P5 仪器四个分量的 m个估计值与 LinearRegression、Ridge 和 Lasso 的预测值的比较。在水分和油分方面,Lasso 的性能最好。然而,在蛋白质和淀粉中,LinearRegression表现出最佳性能。
无花果。5.10 显示了 M P6 工具的四个分量的 m个简化值与 LinearRegression、Ridge 和 Lasso 的预测值的比较。 Lasso 仅在 moisture 中获得最佳性能 在其他三个分量中,LinearRegression 的性能最好。
Table 5.2.结果摘要
| Component |
|
| RMSEP |
|
|
| 0.004776 | |
| 0.1 | 0.222966 | ||
| 1.28E-05 | 0.183542 | ||
|
| 0.016041 | ||
| 0.1 | 0.167543 | ||
| 1.30E-05 | 0.081364 | ||
|
| 0.042262 | ||
| 0.1 | 0.451078 | ||
| 8.84E-06 | 0.282023 | ||
|
| 0.107264 | ||
| 0.1 | 0.721352 | ||
| 5.44E-06 | 0.52641 | ||
|
|
| 0.238383 | |
| 0.1 | 0.242359 | ||
| 1.22E-05 | 0.195496 | ||
|
| 0.1058 | ||
| 0.1 | 0.1642 | ||
| 9.17E-06 | 0.075685 | ||
|
| 0.189644 | ||
| 0.1 | 0.435509 | ||
| 8.57E-06 | 0.412035 | ||
|
| 0.487533 | ||
| 0.1 | 0.693999 | ||
| 4.41E-06 | 0.742767 | ||
|
|
| 0.12908 | |
| 0.1 | 0.233897 | ||
| 1.25E-05 | 0.152965 | ||
|
| 0.091652 | ||
| 0.1 | 0.161801 | ||
| 6.97E-06 | 0.087941 | ||
|
| 0.189663 | ||
| 0.1 | 0.445122 | ||
| 8.74E-06 | 0.25082 | ||
|
| 0.40006 | ||
| 0.1 | 0.707962 | ||
| 4.54E-06 | 0.450186 |
表 5.2 列出了玉米数据集中对应于三个工具的四个分量的正则化系数 (alpha) 和 RMSEP。从表 5.2 中可以注意到,Lasso 仅在 MP5 仪器的水分和油分以及 MP6 仪器的水分下表现最好。在其他情况下,LinearRegression 效果最好,并获得最小的 RMSEP。
5.5 稀疏 PCA
主成分分析[](PCA)广泛用于数据处理和降维。然而,PCA 的缺点是每个主成分都是所有原始变量的线性组合,因此通常很难解释结果。我们引入了一种称为稀疏主成分分析 (SPCA) 的新方法,该方法使用套索(弹性网)生成具有稀疏载荷的修改主成分。我们表明 PCA 可以 1 表述为回归类型的优化问题,然后通过对回归系数施加套索(弹性网)约束来获得稀疏载荷。提出了高效的算法来实现常规多变量数据和基因表达阵列的 SPCA。我们还给出了一个新公式来计算修改后的主成分的总方差。例如,SPCA 应用于真实和模拟数据,结果令人鼓舞.
5.5.1 简介
主成分分析 (PCA)[4] (Jolliffe 1986) 是一种流行的数据处理和降维技术。作为一种无监督的学习方法,PCA 有许多应用,例如手写邮政编码分类[3](Hastie et al. 2001)和人脸识别(Hancock et al. 1996)。最近,PCA 已用于基因表达数据分析(Misra 等人,2002 年)[7]Hastie 等人[2] (2000 年)提出了所谓的基因剃除技术,使用 PCA 在微阵列数据中聚集高可变和相干基因.
PCA 寻求原始变量的线性组合,以便派生变量s 捕获最大方差。PCA 可以通过数据矩阵的奇异值分解 (SVD) 来完成。具体来说,假设数据 X 是 n × p 矩阵,其中 n 和 p 分别是观测值的数量和变量的数量。在不损失一般性的情况下,假设 X 的列均值 均为 0。假设我们有 X 的 SVD 为
X=UDVT (5.5.1)
其中 T 表示转调。u 是单位长度的主成分 (PC),V 的列是主成分的相应载荷。第 i 台 PC 的方差为 D2i,i。在基因表达数据中,PC U 称为特征数组,V 是特征基因(Alter 等人,2000 年)。通常选择第一个 q (q ≪ p) PC 来表示数据,从而实现很大的降维.
PCA 的成功归功于以下两个重要的最佳特性:
1.主成分按顺序捕获 X 之间的最大可变性,从而保证最小的信息损失;
2.主成分是不相关的,因此我们可以在不参考其他主成分的情况下谈论一个主成分。
然而,PCA 也有一个明显的缺点,即每个 PC 都是所有 p 变量的线性组合,并且载荷通常不为零。这使得通常难以解释派生的 PC。旋转技术通常用于帮助从业者解释主成分[5](Jolliffe 1995)。Vines [11](2000) 通过限制载荷从一小群允许的整数(如 0、1 和 -1)中取值来考虑简单的主成分。
我们认为,不仅要实现降维,而且要减小显式使用的变量的大小。一种特殊的方法是人为地将绝对值小于阈值的载荷设置为零。这种非正式的阈值方法在实践中经常使用,但可能在各个方面产生误导[1](Cadima & Jolliffe 1995)。McCabe(1984)[7] 提出了一种替代 PCA 的方法,它找到了主变量的子集。Jolliffe &Uddin[6](2003) 引入了 SCoTLASS 来获得可能零载荷的修正主成分。
回想一下多元线性回归中出现的相同解释问题,其中响应由预测变量的线性组合预测。通过变量选择获得可解释模型。套索[9] (Tibshirani 1996) 是一种很有前途的变量选择技术,可以同时产生准确和稀疏的模型。Zou & Hastie[12] (2003) 提出了弹性网,这是套索的推广,以进一步改进套索。在本文中,我们介绍了一种获得具有稀疏载荷的修改 PC 的新方法,我们称之为稀疏主成分分析 (SPCA)。SPCA 建立在 PCA 可以编写为回归类型优化问题这一事实之上,因此套索(弹性网络)可以直接集成到回归准则中,以便生成的修改后的PCA 产生稀疏载荷。
5.5.2 动机和方法详细信息
在套索和弹性网络中,稀疏系数是 L1 惩罚的直接结果,不取决于平方误差损失函数。Jolliffe & Uddin[6] (2003) 提出了SCoTLASS,方法是直接在 PCA中放置L1约束以获得稀疏载荷。SCoTLASS 连续最大化方差
(5.5.2)
受制于
(5.5.3)
和额外的约束
(5.4.4)
对于某些 tuning 参数 t。尽管足够小的 t 会产生一些精确的零载荷,但 SCoTLASS 似乎缺乏选择合适的 t 值的指导。人们可能会尝试几个 t 值,但 SCoTLASS 的高计算成本使其成为一个不切实际的解决方案。高计算成本是由于 SCoTLASS 不是一个凸优化问题。此外,Jolliffe & Uddin[6] (2003)中的例子表明,当需要高百分比的解释方差时,SCoTLASS获得的载荷不够稀疏。
我们考虑一种不同的方法来修改 PCA,它可以更直接地很好地利用套索。鉴于套索(弹性网)在回归中的成功,我们陈述了我们的策略。 我们寻求一个回归优化框架,其中 PCA 是完全完成的。此外,回归框架应允许使用套索(弹性网)惩罚进行直接修改,以使派生的载荷稀疏。
5.5.2.1 直接稀疏近似
我们首先讨论 PCA 的一种简单回归方法。观察每个 PC 都是 p 变量的线性组合,因此可以通过对 p 变量进行 PC 回归来恢复其载荷
定理 1 ∀ i,表示 Y = UD。Y 是第 i 个主成分。∀ λ > 0,假设
(5.5.5)
让
这个简单定理的主题是展示 PCA 之间的联系,回归方法是可能的。在Cadima和Jolliffe[2](1995)中讨论了回归PCs的问题,他们专注于通过k个变量的子集来近似PC 。我们将其扩展到更一般的岭回归,以便处理各种数据,尤其是基因表达数据。显然,当 n > p 和 X 是满秩矩阵时,该定理不需要正 λ。请注意,如果p > n 和 λ = 0,则普通多元回归没有正好是 V 的唯一解。当 n > p 和 X 不是完整的秩矩阵时,也会发生同样的情况 。但是,PCA 在所有情况下总是提供唯一的解决方案。如定理 1 所示,这种差异被正脊罚 (λ|β|2).请注意,归一化后系数与 λ 无关,因此岭罚不是用来惩罚回归系数的,而是用于确保主成分的重建。因此,我们在本节中保留了 ridge penalty 项。
现在让我们将 L1 的惩罚添加到 (5.5.5) 中,并考虑以下优化问题
(5.5.6)
我们调用
5.5.2.2 基于 SPCA 标准的稀疏主成分
定理 1 取决于 PCA 的结果,因此它不是一个真正的替代方案。但是,它可以用于两阶段探索性分析:首先执行 PCA,然后使用 (5.5.6) 找到合适的稀疏近似.
现在,我们提出了一个“自包含”回归类型标准来推导 PC。我们首先考虑Leading principal 成分。
定理 2 设 X 表示矩阵 X 的第 i 行向量。对于任何 λ > 0,设
(5.5.7)
然后
下一个定理扩展定理 2 以推导出 PC 的整个序列.
定理 3 假设我们正在考虑前 k 个主成分。设 α 和 β 为 p × k矩阵。 X 表示矩阵 X 的第 i 行向量。对于任何 λ > 0,设
(5.5.8)
定理 3 有效地将 PCA 问题转换为回归类型问题。关键元素是对象函数
为了获得稀疏载荷,我们将套索惩罚添加到准则 (5.5.8) 中,并考虑以下优化问题
(5.5.9)
虽然所有 k 个分量都使用相同的 λ,但允许使用不同的 λ 1,j s 来惩罚不同主分量的载荷。同样,如果 p > n,则需要一个正 λ 才能在稀疏性约束(套索惩罚)消失 (λ1,j = 0) 时获得精确的 PCA。(5.5.9) 以下简称SPCA 标准。
5.5.2.3 数值解
我们提出了一种替代最小化算法来最小化 SPCA 标准。从
定理 3 的证明(详见附录)我们得到
(5.5.10)
因此,如果给定 α,则相当于解决 k 个独立的弹性网络问题,得到
另一方面,我们也有(详情见附录)
(5.5.11)
因此,如果 β 是固定的,我们应该αT(XTX)β αTα = Ik,其解由以下定理给出。
定理 4 设 α 和 β 为 m × k 个矩阵,β 的秩为 k。考虑约束最大化问题
(5.5.12)
假设 β 的 SVD 为 β = UDVT ,则
以下是我们的数值算法导出前 k 个稀疏 PC 的步骤。
通用 SPCA 算法
1. 设 α 从 V[, 1 : k] 开始,计算前 k 个普通主分量的载荷.
2. 给定固定α,解决以下 j = 1, 2, ..., k 的朴素弹性网问题.
(5.5.13)
3. 对于每个固定β,执行 XTXβ = UDVT 的 SVD,然后更新 α = UVT.
4. 重复步骤 2-3,直到 β 收敛.
5. 标准化:
5.5.2.4 调整后的总方差
普通主分量不相关,它们的载荷是正交的。让
让
假设
(5.5.14)
哪里
使用 QR 分解,我们可以轻松计算调整后的方差。假设
(5.5.15)
因此,解释的总方差等于
5.5.2.5 计算复杂度
PCA 对 n > p 或 p ≫ n 数据的计算效率很高。我们分别讨论 n > p 和 p ≫ n 的一般 SPCA 算法的计算成本.
1. n > 页。传统的多元数据属于此类别。请注意,尽管 SPCA 标准是使用 X 定义的,但它仅取决于通过 XTX 的 X。一个技巧是首先计算 p × p 矩阵
2. p ≫ n 基因表达芯片是这种 p ≫ n 类别的典型例子。诀窍
5.5.3 用于 p≥n 和基因表达阵列的 SPCA
基因表达阵列是一种新型数据,其中变量(基因)的数量远大于样本的数量。我们的通用 SPCA 算法仍然使用正 λ 来适应这种情况。但是,当需要大量非零载荷时,计算成本很高。最好简化通用 SPCA 算法以提高计算量。
观察到定理 3 对所有 λ > 0 都有效,因此原则上我们可以使用任何正 λ。它转
如果 λ →∞,就会出现一个节俭的解决方案。准确地说,我们有以下定理.
定理 5 设
(5.5.16)
当 λ →∞,
根据第 5.5.2.3 节中的相同陈述,标准 (5.5.16) 由以下算法求解,这是 λ 为 →∞的通用 SPCA 算法的特例.
基因表达阵列 SPCA 算法
将通用 SPCA 算法中的步骤 2 替换为
第 2 步∗:给定固定α,对于 j = 1, 2, ..., k
(5.5.17)
(5.5.17) 中的操作称为软阈值。图5.11. 提供了软阈值规则如何运作的说明。最近,软阈值在文献中越来越流行。例如,最近的缩小质心 [10](Tibshirani et al. 2002)采用软阈值规则来同时对样本进行分类并选择微阵列中的重要基因。
图5.11:∆ = 1 时软阈值规则 y = (|x| − ∆)+Sign(x) 的插图。文献。例如,最近的缩小质心 (Tibshirani et al. 2002) 采用软阈值规则来同时对样本进行分类并选择微阵列中的重要基因。
5.5.4 SPCA 演示
Software 版本 python 2.7 和 Microsoft Windows7 操作系统。来自 sklearn 包的 SparsePCA。 稀疏PCA 主要由 fit 和 transform 两个函数组成。
类SparsePCA(BaseEstimator, TransformerMixin):
“”“稀疏主成分分析 (SparsePCA)
查找可以最佳重建的稀疏分量集
数据。稀疏量可由系数控制
的 L1 惩罚,由参数 alpha 给出。
参数
----------
n_components : int,
要提取的稀疏原子数。
alpha : 浮点数,
稀疏度控制参数。值越高,越稀疏
组件。
ridge_alpha : 浮子,
为了提高垄收缩量而施加的
conditioning 方法。
max_iter : int,
要执行的最大迭代次数。
tol : 浮点数,
停止条件的容差。
方法 : {'LARS', 'CD'}
LARS:使用最小角度回归方法解决套索问题
(linear_model.lars_path)
cd:使用坐标下降方法计算
套索解决方案 (linear_model.套索)。如果
估计的分量是稀疏的。
n_jobs : int,
要运行的并行作业数。
U_init : 形状数组 (n_samples, n_components),
热重启方案的加载的初始值。
V_init : 形状数组 (n_components, n_features),
热重启方案的组件的初始值。
详细:
打印输出的详细程度。
random_state : int 或 RandomState
用于随机采样的伪数生成器状态。
属性
----------
components_ : 数组, [n_components, n_features]
从数据中提取的稀疏分量。
error_ : 数组
每次迭代的误差向量。
n_iter_ : int
运行的迭代次数。
"""
def__init__(self, n_components=无, alpha=1, ridge_alpha=0.01,
max_iter=1000, tol=1e-8, method='lars', n_jobs=1, U_init=无,
V_init=无,详细=False,random_state=无):
self.n_components = n_components
self.alpha = 阿尔法
self.ridge_alpha = ridge_alpha
self.max_iter = max_iter
self.tol = tol
self.method = 方法
self.n_jobs = n_jobs
self 中。U_init = U_init
self 中。V_init = V_init
self.verbose = 详细
self.random_state = random_state
deffit(self, X, y=无):
“”“根据 X 中的数据拟合模型。
参数
----------
X:类数组,形状 (n_samples, n_features)
训练向量,其中 n_samples 的样本数
n_features 是要素的数量。
返回
-------
self : 对象
返回实例本身。
"""
random_state = check_random_state(自身.random_state)
X = check_array(X)
如果self.n_components 为None:
n_components = X.形状[1]
否则:
n_components = 自我.n_components
code_init = 自我。V_init。T 如果是self.V_init 不是没有没有
dict_init = 自我。U_init。T 如果是self.U_init 不是没有没有
Vt, _, E, self.n_iter_ = dict_learning(X.T, n_components, self.alpha,
tol=self.tol 中,
max_iter=self.max_iter,
method=self.method、
n_jobs=self.n_jobs,
verbose=self.verbose,
random_state=random_state、
code_init=code_init,
dict_init=dict_init、
return_n_iter=真
)
自身.components_ = Vt.T
自身.error_ = E
返回自身
deftransform(self, X, ridge_alpha=None):
“”“将数据的最小二乘投影到稀疏分量上。
为避免在系统未确定的情况下出现不稳定问题,
正则化可以通过
'ridge_alpha' 参数。
请注意,稀疏 PCA 组件正交性并不像在 PCA 中那样强制执行
因此,不能使用简单的线性投影。
参数
----------
X:形状为 (n_samples, n_features) 的数组
要转换的测试数据,必须具有相同数量的
features 作为用于训练模型的数据。
ridge_alpha:float,默认值:0.01
为了提高垄收缩量而施加的
调节。
返回
-------
X_new数组,形状 (n_samples, n_components)
转换后的数据。
"""
check_is_fitted(自我, 'components_')
X = check_array(X)
ridge_alpha = self.ridge_alpha如果 ridge_alpha 为Noneelse ridge_alpha
U = ridge_regression(自我.components_.T、X.T、ridge_alpha、
solver='cholesky')
self.u = U
s = np.sqrt((U ** 2).sum(轴= 0))
s[s == 0] = 1
U /= s
返回 U
>>> 将numpy导入为np
>>> 来自sklearn.datasets导入make_friedman1
>>> from sklearn.decomposition import SparsePCA
>>> X, _ = make_friedman1(n_samples=200, n_features=30, random_state=0)
>>> 变压器 = SparsePCA(n_components=5, normalize_components=True,
... random_state=0)
>>> 变压器。适合 (X)
稀疏PCA(...)
>>> X_transformed = 变压器。变换 (X)
>>> X_transformed.形状
(200, 5)
5.5.5 参考文档
Cadima, J. & Jolliffffe, I. (1995),“主成分解释中的载荷和相关性”,《应用统计杂志》第 22 期,第 203-214 页。
Hastie, T., Tibshirani, R., Eisen, M., Brown, P., Ross, D., Scherf, U., Weinstein, J., Alizadeh, A., Staudt, L. & Botstein, D. (2000), ''基因剃须'作为识别具有相似表达模式的不同基因集的方法', 基因组生物学 1, 1-21.
Hastie, T., Tibshirani, R. & Friedman, J. (2001),统计学习的要素; 数据挖掘、推理和预测,Springer Verlag,纽约。
Jolliffffe, I. (1986),《主成分分析》,Springer Verlag,纽约。
Jolliffffe, I. (1995),“主成分的旋转:归一化约束的选择”,《应用统计杂志》第 22 期,第 29-35 页。
Jolliffffe, I. T. & Uddin, M. (2003),“基于套索的修改主成分技术”,计算与图形统计杂志 12,531–547。
McCabe, G. (1984),“主变量”,技术计量学 26, 137–144。
Misra, J., Schmitt, W., Hwang, D., Hsiao, L., Gullans, S., Stephanopoulos, G. & Stephanopoulos, G. (2002),“在降维空间中对微阵列基因表达模式的交互式探索”,基因组研究 12,1112–1120。
Tibshirani, R. (1996),“通过套索的回归收缩和选择”,《皇家统计学会杂志》,B 系列 58,267-288。
Tibshirani, R., Hastie, T., Narasimhan, B. & Chu, G. (2002),'通过缩小的基因质心诊断多种癌症类型',《美国国家科学院院刊》99,6567–6572。
Vines, S. (2000),“简单主成分”,应用统计学 49, 441–451。
Zou, H. & Hastie, T. (2003),通过弹性网络进行回归收缩和选择,及其在微阵列中的应用,斯坦福大学统计系技术报告。
1本节内容主要参考:Zou, Hui, and Trevor H and Robert T.“稀疏主成分分析。” 计算与图形统计杂志15.2(2006):265-286。
6. 传输方式
本章将介绍将在一个领域中建立的线性回归模型扩展到 其他领域的转移方法。通过不同红外光谱仪测量的光谱信号不同的现象,红外光谱的偏最小二乘模型不适用于其他仪器。首先 介绍了校准迁移学习问题,并给出了两种基于 PLS 特征的校准迁移方法及其 Python 路径,实验结果和数据分析过程也是如此。
6.1 光谱模型的校准传输11
6.1.1 简介
在过去的几十年里,光谱测量和多变量校准技术的结合已得到越来越多的应用,并成为在各种应用领域提取(生物)化学信息的广泛公认的方法。在本章中,我们将重点介绍近红外 (NIR) 光谱数据,这些数据通常用于(生物)化学过程的在线/在线监测、制药、石油、农业和其他产品的质量控制、环境分析、医学诊断和学术研究[1-6]。为了从相当无特征的 NIR 光谱中提取定量信息,多变量校准技术,如主成分回归 (PCR)[7-9] 和偏最小二乘法 (PLS)[10,11] 已被证明是成功的[12-15]。
一般来说,数据收集、模型校准和模型优化(例如,关于异常值检测、数据预处理、变量选择和确定合理的模型复杂性)是一个耗时且成本高昂的过程。因此,人们自然希望获得的模型在较长的时间内保持对预期目的的充分、可靠和准确。已经提出了开发这种稳健校准模型的不同方法,例如在 [16,17,13,18] 中进行了讨论。不幸的是,环境条件的变化、测量设置的调整(例如所需的维护操作)或被测物质本身的有意或无意修改都会影响光谱测量,并导致校准模型不再适合预期目的[13,19,1,2]。在这种情况下,有两种可能性可以克服这个问题:(i) 校准一个全新的模型或 (ii) 应用能够将信息合并到原始校准模型和/或数据上的方法。
第二种选择中的技术更可取,因为它们有望更有效,因此在文献中被广泛研究。它们在化学计量学中被称为校准转移或仪器标准化,而在机器学习社区中被称为迁移学习、领域适应或多任务学习工具。在本贡献中,我们提出了新的校准传递技术,这些技术不需要 (real1) 传递标准的可用性,即在新旧测量/环境/样品条件下测量的一组样品,并且可以在新设置中不使用或仅使用少量参考测量(所需响应变量)来应用。这些校准转移方法借鉴了机器学习的方法(例如转移成分分析(TCA)[20,21])和化学计量学领域的复杂技术,并在本节的两个不同的数据集(其中一个是公开可访问的)上进行评估。
6.1.2 校准传输设置
6.1.2.1 表示法和假设
在下文中,我们将源自主要测量/环境/采样条件的信息(数据、模型)表示为主信息,将与新设置对应的信息表示为从属或辅助信息: 并分别表示主和从设置中光谱测量的 和 矩阵,其中 表示 和 对应于单个频谱。主设置和从设置中响应变量的参考测量值分别表示为 和 。预测通常用 表示。如果一组光谱没有可用的响应变量值(即没有 y 值)(即没有进行参考测量),则这些光谱称为“无响应”,表示为,而带有参考值的光谱则简单地写为 or () 并称为“有响应”。
在本节中,我们假设以下数据(见图 6.1)在传输时可用:光谱已与其参考测量值一起使用,以构建主校准模型。少量谱图连同响应和一组“无响应”谱图,可在从属设置中执行校准传输。我们通常会发现,主数据比从数据 () 多得多,并且没有响应的光谱比有响应的光谱多 () 多 (得多)。这是因为在线应用程序中的光谱基本上是免费的,而获得响应的相应参考测量成本很高。因此,任何能够利用其中包含的信息的方法是有益的。
图 6.1.假定的数据设置。我们假设在传输时可以使用以下数据:主/主数据(左)由光谱测量和参考测量获得的相应响应组成。在从/次设置中,还有频谱测量和相应的响应(尽管通常更少:),此外还有“无响应”频谱.
6.1.2.2 传输标准
在化学计量学文献中,转移方法通常基于对主设置和从设置之间差异的分析。为此,绝大多数方法都需要在这两种条件下测量一组样品,称为转移标准品。比较相应的光谱响应,并提供有关设置之间差异的信息,然后可用于开发校正它们的方法。
虽然转印标准的数量不必过大,但一般来说,为了保证转印成功,需要非常仔细地选择它们[13,16,22,23]。具体来说,它们应该表现出两个重要的特性:代表性和稳定性[16]。直观地说,传输标准应该代表次要设置,否则计算的校正可能只涵盖主从之间发生的一部分变化。如果转移标准品必须储存一段时间,化学和物理稳定性很重要。一般来说,缺乏稳定性或代表性可以通过选择适当的选择方法来缓解。
区分方法主要有三种:
(a) 在主数据中选择具有代表性的样本子集
(b) 从从数据中选择具有代表性的样本子集
(c) 使用一组独立的样本。
为了确保在 (a) 和 (b) 中选择代表性样品,已经开发了不同的技术。这些包括相关论文中提出的高杠杆样本的选择[24],以及 [17] 中建议的 Kennard-Stone 算法[25] 的应用。假设可以在 (a) 和 (b) 中找到代表性样本,但仍需要考虑以下问题:
关于 (a),很明显,所选的样本集需要在 slave 设置中测量。只有当转移样品足够稳定,当时仍以未修饰的状态可用时,才有可能做到这一点。
方法 (b) 使用来自从属设置的样品作为转移标准;因此,稳定性在这里应该不是什么大问题。但是,对于要在主条件下重新测量的样品,在从站测量时,主设置必须仍然存在。在维护操作的情况下,由于所考虑的新工业应用需要更改光谱光源,因此主测量设置被从测量设置取代,因此不再可用。
为了使方法 (c) 有效,所选的独立/通用传输标准需要在校准所依赖的光谱区域发生变化[19]。除了这个限制之外,它们当然需要能够并允许在 master 和 slave 设置中进行测量。遗憾的是,所研究应用程序的 NIR 在线安装并非如此。
因此,我们认为,不需要明确转移标准品的校准转移方法在工业在线环境中非常有益,因为所考虑的三聚氰胺树脂生产。这就留下了一个问题,否则该如何应对这种情况。我们认为只有两种选择,即应用完全不需要转移标准的方法,或者选择开发人工转移标准,以便使用基于通用标准的转移技术。本文将研究这两种选择。
6.1.3 相关工作
虽然有几种方法可以将不同的传输方法分为几类,但我们决定将不需要传输标准的方法和需要传输标准的方法分开,其中第二组与此贡献相关,因为我们在本节中提出了一种用人工传输标准替换实际传输标准的方法。
6.1.3.1 不需要传输标准的方法
模型更新。在无法直接应用主模型的设置中,一种自然的方法是合并从属数据的新方差,并在增强的校准集上校准新模型[13]。这种技术,如下所述,在文献和实践中非常常见。然而,在某些情况下,主数据可能简单地超过合并的从属信息,并导致相当不准确的预测[26,23,13]。因此,要么需要收集更多的 slave 数据,要么可以尝试增加 slave 信息的权重。除了这些简单的方法外,还研究了自动模型更新方法[19]。然而,正如 [19] 中所指出的,很难想象这些方法会在不受监管的环境中被允许。模型更新技术的一个潜在缺点是,它们需要训练,并且通常需要优化新的校准模型。
预测校正。在实践中,获得从属情况预测的常用方法包括对主校准模型的预测执行单变量斜率和偏差校正 (USBC)。这种校正通过线性模型将主模型的预测与从属域相关联。从属设置对新频谱的预测与 中一样获得, 其中和是主模型的回归系数。k 和 d 作为通过点的(最小二乘)回归线的参数。 这种方法的一个主要优点是不需要训练和优化新的校准模型,理论上只需要从属域中的几个参考样本。但是,由于其简单的单变量性质,USBC 通常只能处理相当简单的 master 到 slave 的更改。
6.1.3.2. 主频谱和从频谱的校正
如果没有可用的传输标准,则保证光谱响应更好地匹配从而获得更稳健模型的自然方法是对主频谱和从频谱应用通用的信号预处理方法[13]。最常用的预处理技术可分为应用简单数学运算和信号居中或缩放的方法,执行噪声、偏移和基线滤波的方法,如通过基线校正、平滑和导数计算完成的方法,以及应用样本归一化的技术,例如通过乘法散射/信号校正 (MSC) 和标准正态变量 (SNV) 归一化[13,27,1,28]。
更先进的预处理方法包括:有限脉冲响应 (FIR) 滤波[12]、[29] 中引入的改进 FIR 方法、广义移动窗口 MSC (MW-MSC)[1] 和通过小波的预处理[13,30]。
在这些技术之上,已经研究了通过正交信号校正 (OSC) 进行的多变量滤波。OSC[31,32] 旨在去除光谱中与响应变量正交的信息。它可以用作常见的预处理方法,也可以应用于略微修改的校准传输版本。在后一种情况下,从属设置中的一小部分数据 (and) 和主域中可能不同的一小组数据 (and) 在通用 OSC 算法中组合在一起并一起使用。更多信息可在 Section [27] 中找到。有关如何使用/修改此方法以做出贡献的详细信息,请参见 Section6.2。
所有这些预处理方法都有一个共同点,即需要校准新的校准模型。此外,已经注意到,简单的前处理技术可能无法应对更复杂的变化,而更高级的技术往往会减少净分析物信号,因为它们会去除主光谱和从光谱中不常见的变化[19]。在本章中,我们只包括我们提议的传输 OSC 版本的结果。
从属光谱校正。以某种方式校正从光谱以获得与在主设置下获得的相应数据相似的数据的典型方法通常基于传输标准。然而,Section 6.2 中列出了两种基本的无标技术。此类方法的优点是不需要训练和优化新的校准模型。然而,与预测校正类似,这些方法通常只涵盖相对简单的 master 到 slave 的变化。
6.1.3.3. 通过投影的稳健模型
例如,将主数据和从数据投影到公共特征空间的想法已被一种称为传输成分分析 (TCA) 的机器学习技术所遵循[20]。TCA 背后的基本概念是使主数据分布和从数据分布尽可能相似,同时保留原始数据的关键(几何和统计)属性。问题是相似性的概念。原则上,可以采用概率分布的任何相似性度量;从简单的度量开始,如需要相似的均值和协方差(这是必要的,但不是足够的),到更复杂的度量,如 Kullback-Leibler 散度或 Bhattacharyya 距离。Pan 等人通过学习主数据和从数据之间的共享子空间来实现这一想法,该子空间能够处理非线性以及利用公共特征空间中的最大均值差异的数据中的复杂变化。有关详细信息,请参见 [20,21]。找到子空间后,可以使用标准的机器学习方法来训练跨域的分类器或回归模型。属于该组的其他技术包括核主成分分析 (KPCA)[33-35]、通过不变特征表示的域泛化 (DICA)[36]、协方差算子逆回归 (COIR)[37] 以及在多任务学习 (MTL) 环境中发现联合(潜在)特征子空间的方法[38,39]。
TCA 和相关方法的一个优势在于可以使用不同的内核,因此也允许对复杂的变化进行建模。不利的一面是,它们通常需要校准一个新模型,并且确定投影空间的过程中涉及的计算相当复杂,并且在时间和计算资源方面也很昂贵。
6.1.3.4. 需要传输标准的方法
如第 6.1.2.2 节所述,我们研究了两种选择来解决所研究的工业应用中缺乏转移标准的问题:一种是应用根本不需要转移标准的方法,另一种是开发人工转移标准的选项,以便使用基于通用标准的转移技术。属于前一类的方法已在第 6.1.3.1 节中介绍,而基于标准的技术和相应的人工传输标准分别在此处和第 6.2 节中介绍。
从属光谱校正。由于此类方法需要转移标准品的可用性,因此它们在化学计量学中被广泛称为标准化方法。化学计量学文献中提出的大多数转移方法都属于这一组[16,13]。他们比较传输标准品的光谱响应,并在主光谱和从光谱设置下测量,并估计一个矩阵,使光谱尽可能接近相应的主光谱。如果应用于新的从光谱,则假设矩阵达到其中 表示在主条件下测量新样品时将获得的光谱响应。因此,任何计算方法都可以将原始主模型用于传输的从光谱。有几种方法可以计算传递矩阵.
对于 Shank 和 Westerhaus[40] 引入的最简单的方法之一,传递矩阵仅包含沿对角线的非零条目,即构成每个波长的简单斜率和偏置校正(在最简单的情况下,每个波长可能相同)。
可以说,最突出和最广泛使用的方法是直接标准化 (DS) 和分段直接标准化 (PDS)[24,41,13]。
对于 DS,传递矩阵计算为via 奇异值分解的伪逆 [28,42]。克服常见过拟合的一种方法是减少映射过程中涉及的波长数量[43,13]。这代表了 PDS 方法的基本理念。
在 PDS 中,主设置的每个波长都与从设置中的波长窗口相关,从而产生带状传输矩阵。这一假设与以下观点一致:对于许多传输应用,主站和从站之间的光谱相关性仅限于较小的区域[13]。PDS 程序的一个缺点是需要优化 p PLS 或 PCR 模型。确定这些模型中使用的合理数量的潜在变量并选择合适的窗口大小是一项关键任务,如果不仔细执行,可能会导致 PDS 转移的从光谱中出现伪影和/或不连续性[41,2]。其他文献中已经提出了可能的解决方案或减少这个问题的不同方法[41,44,45]。PDS 通常用作其他新技术的参考[13],因为它的局部特性和多变量性质涵盖了多种转移设置,并且如果不受伪影的影响,通常可以针对小批量转移样本产生相当准确的结果[19]。
该组中的另一种方法称为光谱空间变换 (SST)[2]。
主频谱和从频谱的校正。在开发新的从校准模型之前,一种基于标准的方法校正主频谱和从频谱,即广义最小二乘加权 (GLSW)[46,47]。GLSW 解决了消除 master 和 slave 设置中不常见的变化的目标。[47] 中提供了有关 GLS 加权矩阵开发的图形说明和相应的解释。GLSW 中只有一个参数需要优化。通常可以通过最小化某种形式的误差标准来确定适当的值。相应类别的无标准方法中列出的所有缺点也适用于 GLSW。当然,转会标准的要求代表了另一个限制。
通过投影实现稳健的模型。文献中已经发表了许多先进的基于标准的传输投影技术。其中包括:典型相关分析 (CCA)[48]、频谱回归 (SR)[43]、正交投影转移 (TOP)[49-52] 和正交减法误差消除 (EROS)[53,50,52]。
6.1.4 新的或改编的方法
6.1.4.1 从属光谱的校正
以下两种基本的无标技术最近由 [54] 作者介绍,它们是更一般思想的简单实例,使奴隶观察的概率分布更接近主域中的概率分布。他们的动机是假设线性滤波器可能足以对测量设置的变化进行建模。这种线性滤光片应该近似为波长域中更适合强度谱的元素乘法,或更适合吸收光谱的元素加法。因此,加法均值校正 (AMC) 执行平均从光谱的减法和平均主光谱的加法,从而迫使校正后的从光谱的平均值等于主光谱的平均值。对于频谱,在从空间内,校正执行如下:
其中表示平均主频谱和平均从频谱。在本贡献中,所有可用的从谱(有和没有相应的响应)都用于计算.
因此,乘均校正 (MMC) 定义为
其中 和 是元素级乘法和除法运算。显然,在校正过程中(也)使用一组 '无响应' 从属光谱的可能性可能是有益的。还应注意,AMC 和 MMC 不需要/使用从属参考测量。
6.1.4.2 主频谱和从频谱的校正
在本章中,我们应用了 [27] 中描述的转移 OSC 方法,通过组合相同数量的主从光谱,然后我们将结果矩阵居中,伴随着组合参考响应值的相应自动缩放向量,并将这些数据交给 OSC 算法。我们固定了初始迭代的参数容差和重建的容差([55]),同时优化了最关键的参数,即要从数据中删除的潜在 OSC 变量的数量。这是利用“无响应”从频谱来执行的,以最小化 OSC 处理的平均主频谱与平均 OSC 处理的“无响应”从频谱之间的欧几里得距离:
其中表示使用 k 个潜在 OSC 变量时 OSC 传输主光谱的平均值,表示“无响应”从属数据的相应向量。以这种方式执行参数优化的想法很新颖,并且能够访问额外可用的“无响应”从光谱中包含的信息。请注意,为了简单起见,这里使用了平均光谱之间的欧几里得距离。也可以使用光谱相似性测量的任何其他测量。
图 6.2. 用于学习常见 TCA 特征空间的数据和用于 TCR 参数优化的数据。
6.1.4.3 通过投影创建稳健模型
本章将 TCA 与普通最小二乘法 (OLS) 回归相结合,在下文中表示为 TCR。虽然最初的 TCA 方法仅包含光谱信息,但我们开发了一个修改后的版本,可以以某种形式使用所有可用数据。底层实验方案如图 6.2 所示,总结如下:随机抽取一部分(例如 0.5)可用主数据,结合来自从属域的所有“无响应”光谱 XS°,用于学习共享的 TCA 子空间[20,21]。然后,将剩余的主样本与来自从域的数据连接起来,并使用此信息来优化 TCR 的参数。使用来自主域和从域的谱数据及其响应变量来找到参数的最佳设置,在实践中对 TCR 的性能有相当大的积极影响。在上述协议中,一种相关的方法是用 PCA 替换 TCA。我们将这种方法称为 PCRT。虽然最初的 TCA/PCA 公式仅使用“无响应”数据来确定潜在空间,但拟议的新版本的 TCA/PCA 以某种形式利用了所有可用数据。通过这种方式,我们期望获得更准确的模型。
6.1.5 需要转移标准的方法的无标准替代方法
在无法获得转移标准品的工业应用中,可以使用类似于动态正交投影 (DOP) [49,50] 中研究的程序来确定人工/虚拟转移标准品。这里提出的一个实用过程基于一小组带有响应的数据,这些数据可用于 slave 设置,并执行以下步骤:
对于从空间中响应值为 y 的每个样本,查找参考测量值接近(并根据响应范围选择)的所有主样本。如果有区分样品的其他信息,则可以将其额外纳入此类选择步骤中。在本研究所考虑的新工业应用中,例如,配方编号的知识(在某些情况下,基于几个相关配方为产品构建了一个通用的主模型)是可用的,并且可用于选择一组较小的主样品,假设这些样品与所考虑的从样品非常相似。
然后,我们计算这些选定主光谱的平均值,并使用此平均光谱代替实际传递标准测量
通过此程序,所有需要转移标准的方法都可用于我们和类似的工业应用。将呈现 PDS 和 GLSW 的结果,其中人工转移标准的使用将用前缀 A- 表示。
为了利用可用的“无响应”从数据,A-PDS 和 A-GLSW 的参数优化以类似于 OSC 变换光谱概述的方式进行,即在 A-PDS 的情况下,项
在不同的窗口宽度 w 上最小化,对于 A-GLSW,我们最小化
关于参数,其中表示(非转移的)主光谱的平均值,分别是基于相应参数的 A-PDS 和 A-GLSW 转移的“无响应”从光谱的平均值,并使用参数值表示 A-GLSW 转移的主数据的平均值 在 GLSW 中。如前所述,平均光谱之间的欧几里得距离为简单起见,可以替换为光谱相似性的任何其他度量。
6.1.6 参考资料
K.E. Kramer, R.E. Morris, S.L. Rose-Pehrsson, 无标准品校准转移的两种乘法信号校正策略的比较, Chemom.Intell. Lab. Syst. 92 (1) (2008) 33-43。
杜温等人通过光谱空间变换保持多变量校准模型的预测能力,Anal. Chim。Acta 690 (1) (2011) 64-70。
HUANG, 海波.et al 用于食品和饮料质量在线/在线监测的近红外光谱:综述,J. 食品工程师87 (3) (2008):303–313。
J.A. Lopes, P.F. Costa, T.P. Alves, J.C. Menezes, 生物过程工程中的化学计量学:过程分析技术 (PAT) 应用,化疗。英特尔。实验室。系统。74 (2) (2004) 269–275。
Y. Roggo, P. Chalus, L. Maurer, C. Lema-Martinez, A. Edmond, N. Jent, 制药技术中近红外光谱和化学计量学的综述, J.生物医学药学 Anal. 44 (3) (2007) 683-700。
CEN Haiyan, HE Yong, 近红外反射光谱法在食品质量测定中的理论和应用, Trends Food Sci. Technol. 18 (2) (2007) 72–83.
T. Næs, H. Martens, NIR 分析中的主成分回归:视点、背景细节和成分选择,J. Chemom。2 (2) (1988) 155–167.
P. Geladi, K. Esbensen, 多变量图像回归:建模、预测和视觉诊断工具的主成分回归, J. 化疗。 5 (2) (1991) 97-111。
I.T. Jolliffe,关于在回归中使用主成分的说明,J. R. Stat. Soc. Ser. C (Appl. Stat.) 31 (3) (1982) 300–303 (URL 〈http://www.jstor.org/stable/ 2348005〉)。
H. Wold,《通过迭代最小二乘法估计主成分和相关模型》,学术出版社,纽约,1966 年,第 391-420 页。
S. wold, M. Sjöström, L. Eriksson, PLS 回归:化学计量学的基本工具,化疗。英特尔。实验室系统。 58 (2) (2001) 109-130。
T.B. Blank, S.T. Sum, S.D. Brown, S.L. Monfre, 无标准品的近红外多变量校准转移, Anal. Chem. 68 (17) (1996) 2987–2995.
RN Feudale、NA Woody、H. Tan、AJ Myles、SD Brown、J. Ferr,多变量校准模型的转移:综述,化疗。英特尔。实验室系统。 64 (2) (2002) 181-192。
B. Buchanan, D. Honigs, 近红外分析趋势, TrAC Trends Anal. Chem. 5 (6) (1986) 154–157.
K. Wiesner, K. Fuchs, A.M. Gigler, R. Pastusiak, 工业视角下近红外光谱和多变量数据分析的趋势, Procedia Eng. 87 (2014) 867–870.
E. Bouveresse, D. Massart, 近红外光谱仪的标准化:综述, Vib.光谱。11 (1) (1996) 3–15.
O.E. de Noord,多变量校准标准化,化疗。英特尔。实验室系统。 25 (2) (1994) 85-97。
王。Dongni, S.D. Brown, R. Man, 用于无标准品校准传输的堆叠 PLS, J. 化疗。25 (3) (2011) 130–137.
BM Wise,R.T. Roginski,校准模型维护路线图,IFAC-Pap。在线 48 (8) (2015): 260–265。
S.J. Pan, I. Tsang, J. Kwok, Q. Yang, 通过转移成分分析进行域适应,神经网络。IEEE Trans. 22 (2) (2011) 199-210。
S.J. Pan, J.T. Kwok, Q. Yang, 通过降维进行迁移学习,收录于:第 23 届全国人工智能学术会议论文集 - 第 2 卷,AAAI'08,AAAI 出版社,2008 年,第 677-682 页。网址 〈http://dl.acm.org/citation.cfm?楼盘编号=1620163.1620177〉
G.G. Siano, H.C. Goicoechea, 代表性子集选择和标准化技术。使用 NIR 和模拟发酵过程的比较研究UV 数据 Chemom。英特尔。实验室系统88 (2) (2007):204-212。
X. Capron, B. Walczak, O. de Noord, D. Massart, 多元回归模型更新中样本的选择和加权,化疗。英特尔。实验室系统76 (2) (2005) 205–214。
WANG Yongdong D.J. Veltkamp, B.R. Kowalski, 多变量仪器标准化, Anal. Chem. 63 (23) (1991) 2750–2756。
R.W. Kennard, L.A. Stone, 计算机辅助实验设计, 技术计量学 11 (1) (1969) 137–148.
CL Stork, BR Kowalski, 更新回归模型的加权方案 - 非理论方法, 化疗.英特尔。实验室系统48 (2) (1999) 151–166。http:// dx.doi.org/10.1016/S0169-7439(99)00016-7。
N.A. Woody, R.N. Feudale, A.J. Myles, S.D. Brown, 使用正交信号校正在四台近红外光谱仪之间传输多变量校准, Anal. Chem. 76 (9) (2004) 2595–2600.
B. Wise、N. Gallagher、R. Bro、J. Shaver、W. Windig、R. Koch,PLS_toolbox 和 Solo 的化学计量学教程,Eigenvector Research, Inc.,3905。
H. Tan, S.T. Sum, S.D. Brown, 近红外校准转移的无标方法的改进, Appl. Spectrosc. 56 (8) (2002) 1098–1106 (URL〈http://as.osa.org/abstract.cfm?URI=as-56-8-1098〉)。
P. Geladi, H. Bärring, E. Dåbakk, J. Trygg, H. Antti, S. wold, B. Karlberg, 从湖泊近红外光谱预测湖水 pH 值的校准转移, J. 红外光谱。7 (4) (1999) 251–264.
S. wold, H. Antti, F. Lindgren, J. Öhman, 近红外光谱的正交信号校正, Chemom.英特尔。实验室系统。 44 (1-2) (1998) 175-185。
J. Sjöblom, O. Svensson, M. Josefson, H. Kullberg, S. would, 应用于近红外光谱校准转移的正交信号校正评估,Chemom.英特尔。实验室系统44 (1) (1998) 229–244。
B. Schölkopf, A. Smola, K.-R.Müller,内核主成分分析,收录于:人工神经网络 ICANN'97,施普林格,1997 年,第 583-588 页。
B. Schölkopf, A. Smola, K.-R.Müller,非线性分量分析作为内核特征值问题,神经计算。10 (1998) 1299–1319。
K. Fukumizu, F.R. Bach, M.I. Jordan, 使用复制核希尔伯特空间进行监督学习的降维, J. Mach. Learn. Res. 5 (2004) 73–99 (URL 〈http://portal.acm.org/citation.cfm?id=1005332.1005335〉)。
K. Muandet, D. Balduzzi, B. Schölkopf, 通过不变特征表示实现域泛化,收录于:第 30 届机器学习国际会议 (ICML-13) 论文集,2013 年,第 10-18 页。
M. Kim, V. Pavlovic, 使用协方差算子减少中心子空间维数, IEEE Trans. 图案 Anal. Mach. Intell.33 (4) (2011) 657–670.
A. Argyriou, T. Evgeniou, M. Pontil, 多任务特征学习,收录于:神经信息处理系统进展论文集 第 19 届第二十届神经信息处理系统年度会议,加拿大不列颠哥伦比亚省温哥华,200 年 12 月 4-7 日,2006 年 12 月 6 日,第 41-48 页。网址 〈http://papers. nips.cc/paper/3143-multi-task-feature-learning〉
A. Birlutiu、P. Groot、T. Heskes,多任务偏好学习与助听器个性化应用,神经计算 73 (7–9) (2010) 1177–1185。
J.S. Shenk, M.O. Westerhaus,美国专利4866644 (1989)。
E. Bouveresse, D. Massart, 用于多变量校准的 NIR 光谱传输的分段直接标准化程序的改进,化疗。英特尔。实验室系统。 32 (2) (1996) 201-213。
A.K. Cline, I.S. Dhillon, 奇异值分解的计算,收录于:L. Hogben (Ed.)线性代数手册第二版,Chapman 和 Hall/CRC,2013 年。
J. Peng, S. Peng, A. 江, J. Tan, 基于光谱回归的近红外校准转移, Spectrochim.Acta Part A:分子。 生物醇。光谱学 78 (4) (2011) 1315–1320。
TAN Huwei, S.D. Brown, 近红外多变量校准的小波混合直接标准化, J. 化疗。15 (8) (2001) 647–663..
WANG Yongdong, M.J. Lysaght, B.R. Kowalski, 通过仪器标准化改进多变量校准, Anal. Chem. 64 (5) (1992) 562–564.
BM Wise, H. Martens, M. Høy, R. Bro, PB Brockhoff, 广义最小二乘法的校准传递 (2001)。网址 〈http://www.eigenvector.com/Docs/GLS_Standardization.pdf〉
B.M. Wise, H. Martens, M. Høy, 用于校准传输的 URL 广义最小二乘法, [在线;(访问时间:2015 年 10 月 22 日)。
FAN Wei et al基于典型相关分析的近红外光谱校准模型转移,Anal. 钦。Acta 623 (1) (2008) 22-29。
J.-C. 布莱,J.-M.Roger,通过正交投影进行预处理,化疗。英特尔。实验室系统117 (2012):61-69。
B. Igne, J.-M.Roger, S. Roussel, V. Bellon-Maurel, C.R. Hurburgh, 通过正交方法改进近红外预测模型的传输, Chemom.英特尔。实验室系统。 99 (1) (2009) 57-65。
L. Salguero Chaparro, B. Palagos, F. Peña Rodriguez, J. Roger, 完整橄榄近红外光谱在预色散仪器和便携式光谱仪之间的校准转移,Comput.电子。农业 96 (2013) 202–208。
B. Igne,URL 近红外光谱仪的品牌内部和品牌间校准转移,研究生论文和学位论文。论文 10294。网址 〈http://lib.dr.iastate. edu/etd/10294〉
ZHU Ying, T. Fearn, D. Samuel, A. Dhar, O. Hameed, S.G. Bown, L.B. Lovat, 正交减法 (EROS) 的误差消除:光谱数据的定制预处理, J. 化疗。22 (2) (2008) 130–134.
B. Malli, T. Natschläger, M. Pawliczek, T. Reischer, W. Kantner, M. Brandstetter, W. Märzinger, J. Kowalski, 面向应用的校准转移无标方法, 兰精.贝里希特 92 (2015):33-46。
E.R. Inc.,URL Eigenvector Wiki - OSC,[在线;(2015 年 10 月 16 日访问)(2012 年 3 月)。网址 〈http://wiki.eigenvector.com/index.php?Title=Osccalc〉
6.2 用于 NIR 定量分析的基于 PLS 子空间的校准转移21
本节提出了一种新的投影方法,即一种基于 PLS 子空间 (PLSCT) 的特征转移模型。PLSCT 首先建立了主仪器校准集的 PLS 模型,构建了一个低维 PLS 子空间,该子空间是由谱特征向量构建的特征空间。然后使用 PLS 模型提取主光谱的预测特征和从光谱的伪预测特征,即将主仪器和从仪器的所有光谱投影到这个 PLS 子空间中。然后,采用普通最小二乘法探究相同 PLS 子空间中两个特征之间的关系,然后利用该关系构建特征转移关系模型。
请注意,从光谱的伪预测特征是由主仪器建立的 PLS 模型获得的,而不是由从仪器的 PLS 模型获得的。并且 PLSCT 不需要与标准集对应的响应变量。此外,与 PDS 相比,PLSCT 校正的是光谱的特征,而不是光谱。与 CCACT 相比,PLSCT 使用 PLS 来查找光谱和响应变量之间的协方差,而不是使用 CCA 来查找主光谱和从属光谱之间的相关性。
6.2 1 校准传输方法
6.2 1.1 符号
在本节中,我们将谱矩阵定义为
6.2 12 建议的 PLSCT 方法
在 PLSCT 中,PLS 模型建立在主仪器的校准集上,构建了 PLS 子空间,该子空间也是由主仪器校准集的光谱特征向量构建的特征空间。PLS 模型中的潜在变量 (LV) 的数量由交叉验证确定。
(6.2.1)
在此 PLS 模型的基础上,主仪器中标准集的预测特征矩阵
(6.2.2)
同样,从属工具中设置的标准伪预测特征矩阵
(6.2.3)
得到的两个预测特征矩阵来自主机的相同 PLS 模型,也就是说,所有光谱都被投影到主机仪器构建的相同 PLS 子空间中。在相同的 PLS 子空间中,两个特征矩阵之间应该存在线性关系。所以
(6.2.4)
两个特征矩阵之间的线性关系可以通过普通最小二乘法求解,公式如下:
(6.2.5)
一次
(6.2.6)
6.2 2 实验
6.2 2.1 数据集描述
本节中使用的玉米小麦和 p药片数据集在 3.6.3 中有详细描述,因此在此处不进行描述。
6.2.2.2 确定最佳参数
PLS 模型中使用的潜在变量的数量是通过 10 倍交叉验证选择的。为避免因包含冗余潜在变量而导致的过拟合,基于统计 F 检验 (α = 0.05) 实现了潜在变量的最优数量。
标准从属工具集的预测特征是由主工具的 PLS 模型构建的伪预测特征。与预测特征相比
对于 PDS 方法,其窗口大小分别设置为 3、5 和 7。
6.223 模型性能评估
为了验证不同校准模型的预测性能,我们计算了预测均方根误差 (RMSEP)。RMSEP 的计算方法如下:
(6.2.7)
哪里
为了更直接地比较所提出的模型与其他模型之间的预测性能差异,将 equation (6.28) 用于计算 PLSCT 方法与其他方法相比的 RMSEP 改进:
(6.2.8)
哪里
此外,通过比较不同模型的预测误差,利用 95% 置信水平的 Wilcoxon 符号秩检验来指出 PLSCT 与其他方法是否存在显著差异。在 python 中,我们使用了 scipy 包中的 wilcoxon 函数,直接计算两个预测误差之间的 p 值。如果 p > 为 0.05,则两种方法之间没有显著差异。否则,存在显著差异。
6.2 3 结果与讨论
6.2 3.1 玉米数据集分析
首先,表 6.1 列出了校准、直接转移和重新校准的潜在变量 (LV) 和预测均方根误差 (RMSEP)。使用主机的校准模型预测主机上测得的测试集的频谱时,RMSEP 为 0.010156。但是,当直接使用主仪器的校准模型来预测在从仪器上测得的测试集的频谱时,RMSEP 为 1.41931,这表明如果将主仪器的模型直接应用于从仪器,则会产生较大的预测误差。
表6.1. 通过三个光谱数据集的 C脂肪、D直接转移和 Recalibration 获得的预测均方误差 (RMSEP)。
|
|
| RMSEP |
|
| 13 | 0.010156 |
| 1.41931 | ||
| 5 | 0.208522 | |
|
| 12 | 0.258014 |
| 0.85131 | ||
| 8 | 0.530799 | |
|
| 7 | 3.123115 |
| 4.514284 | ||
| 2 | 3.31598 |
1 Calibration:主仪器的校准集的校准型号;
2 直接传输:主仪表的校准型号在从仪表上使用,无需修改;
3Recalibration (重新校准):从仪器校准集的校准模型。
从从光谱的标准集构造伪预测特征矩阵的因子数 (
此外,将不同模型获得的玉米数据集水分含量测量值与标准集中样本数设置为 30 时的预测值进行了比较,如图 6.4 所示。在这种情况下,线的斜率等于 1。线上的点表示预测值等于测量值。如图 6.4 所示,PLSCT 测量值和预测值之间的差异最小。这归因于 PLS 子空间中特征转移的实现。详细说明如图 6.5 所示.
图6.3.构建时选择因子数量的影响
为了进行比较,PLS 子空间中传递前后特征之间的差异,从属工具的第一个伪预测特征与主工具的第一个预测特征之间的关系如图 6.5 所示。在这两个图中,蓝点表示传输前的特征,红点表示传输后的特征。点越接近直线,从属工具的伪预测特征与主工具的预测特征之间的差异就越小。图 6.5A,B 分别描述了标准集和测试集中特征之间的差异。显然,在转移后,从属工具的第一个伪预测特征与主工具的第一个预测特征之间的差异显著减小,不仅在标准集中,而且在测试集中。
为了评价标准品组中样品数量对不同校准方法5、10、15、20、25和30标准样品的影响,在实验中考虑了标准样品。从附录表 6.1A1 中可以看出,MSC 的 RMSEP 相对较大,CCACT 和 GLSW 的可预测性优于 PDS、SBC 和 MSC。从 5 个样本到 30 个样本,PLSCT 的 RMSEP 小于 PDS、SBC、CCACT、GLSW 和 MSC 的 RMSEP。此外,当标准中样品的数量从 20 个增加到 30 个时,PLSCT 的 RMSEP 逐渐稳定。因此,我们得出结论,PLSCT 的预测性能明显优于其他模型。
为了进一步将 PLSCT 与其他模型进行比较,附录的表 6.2 A2 列出了 Wilcoxon 符号秩检验的 RMSEP 改进和 p 值。PLSCT 对 PDS(3)、PDS(5)、PDS(7)、SBC、CCACT、GLSW、MSC、Recalibration2 和 Recalibration 的 RMSEP 改进分别高达 35.00575%、34.99841%、34.98937%、41.95097%、37.18537%、30.21822%、85.7502%、8.610493% 和 2.26298%。Wilcoxon 符号秩检验显示 PLSCT 与其他模型(包括重新校准)在 95% 置信水平上具有统计学意义差异。
图 6.4玉米数据集水分含量的测量值与预测值,由以下因素确定:(A) 窗口大小为 3 的分段直接标准化 (PDS(3)),(B) 窗口大小为 5 的分段直接标准化 (PDS(5)),(C) 窗口大小为 7 的分段直接标准化 (PDS(7)),(D) 斜率和偏差校正 (SBC), (E) 基于典型相关分析 (CCACT) 的校准传递方法,(F) 广义最小二乘法 (GLSW),(G) 乘法信号校正 (MSC),(H) 重新校准和 (I) 基于偏最小二乘回归子空间的校准转移 (PLSCT)。
图6.5绘制偏最小二乘回归 (PLS) 子空间中迁移前后特征之间的差异。(A) PLS 子空间转移前后从属工具标准集第一伪预测特征的差异,(B) PLS 子空间转移前后从属工具测试集第一伪预测特征的差异。
6.2 3.2 小麦数据集分析
在表 6.1 中,我们可以注意到,当不使用校准转移方法时,直接使用 Calibration 的 RMSEP 和 Recalibration 的 RMSEP 之间的差异远小于玉米数据集中的差异,部分原因是两种工具在小麦数据集中的差异相对较小。
图 6.6 显示不同模型的测量值和预测值的比较。从这些图中可以看出,PLSCT 中测量值和预测值之间的差异仅略大于重新校准,小于任何其他方法。
图6.6.由 (A) PDS(3)、(B) PDS(5)、(C) PDS(7)、(D) SBC、(E) CCACT、(F) GLSW、(G) MSC、(H) 重新校准和 (I) PLSCT 确定的小麦数据集蛋白质含量测量值与预测值。
由于小麦数据集中主仪器和从属仪器之间的光谱差异较小,因此特征转移的影响在图 6 的 PLS 子空间中并不明显。7.但是,传输后的第一个伪预测特征与第一个预测特征之间的差异仍然略小。图 6 中标准集的样本数。7A 是 30。
附录表 6.A1 中还显示了不同方法对小麦样品的性能。表 6.A2 清楚地表明,当标准集中的样本数量为 10、25 和 30 时,PLSCT 的预测误差远低于 PDS、SBC、GLSW 和 MSC。当标准集中的样本数为 30 时,PLSCT 获得的最小 RMSEP 为 0.6604。Recalibration2 的 RMSEP 波动很大,可能是因为从属仪器的标准集中存在异常值。这些异常值也会影响 SBC 的性能,如图 6 所示。6D.
Wilcoxon 符号秩检验的结果表明,在 95% 置信水平上,PLSCT 与 PDS(3)、PDS(5)、PDS(7)、SBC、CCACT、GLSW、MSC 和 Recalibration2 显著不同。与这些模型相比,PLSCT 导致的 RMSEP 改进分别为 51.77389%、54.35396%、57.02112%、87.45319%、42.18862%、61.34526%、56.43832% 和 69.98222%(见附录表 6.A2)。
图 6.7.绘制 PLS 子空间中传递前后特征之间的差异。(A) PLS 子空间传输前后从属仪器标准集的第一伪预测特征的差异。(B) PLS 子空间传输前后从属仪器测试集的第一个伪预测特征的差异。
6.2.3.3 药片数据集分析
与前面的情况一样,校准、直接转移和重新校准的 LV 和 RMSEP 如表 6.1 所示。校准的 RMSEP 为 3.123115,直接传输的 RMSEP 为 4.514284,重新校准的 RMSEP 为 3.31598。
在 PLSCT 模型中,构造
图 6.图9显示了在PLS子空间中传输前后从属仪器标准集和测试集的第一个伪预测特征的比较,其中标准集的样本数如图6所示。9A 是 30。来自图 6 中的两个图。9、传递后的第一个伪预测特征明显更接近主仪器的预测特征,无论是在标准集还是在从仪器的测试集中。
从附录表 6.A1 中可以看出,随着标准集中样本数量的增加,PLSCT 的性能逐渐变好。当标准集中的样本数量为 25 和 30 时,PLSCT 的 RMSEP 逐渐趋于稳定,明显优于 PDS、SBC、CCACT、GLSW 和 MSC。从表 6.A2 中的结果来看,当标准集中的样本数量大于 20 时,PLSCT 的 RMSEP 已经小于 Recalibration 的 RMSEP。
与其他模型相比,PLSCT 的 RMSEP 改进分别可达 16.3743%、15.12146%、14.35178%、40.04516%、16.81376%、41.83697%、24.21448%、23.82937% 和 2.908651%。此外,PLSCT 和其他模型之间的差异在 95% 置信水平上均具有统计学意义(如附录表 6.A2 所示)。
图 6.8 由(A) PDS(3)、(B) PDS(5)、(C) PDS(7)、(D) SBC、(E) CCACT、(F) GLSW、(G) MSC、(H) 重新校准和 (I) PLSCT 确定的药片数据集的测量值与预测值。
图 6.9绘制 PLS 子空间中传输前后特征之间的差异。(A) PLS 子空间转移前后从属工具标准集第一伪预测特征的差异,(B) PLS 子空间转移前后从属工具测试集第一伪预测特征的差异。
6.2 4 总结
本节提出了一种巧妙的基于 PLS 子空间的校准传递方法。PLSCT 使用相同的 PLS 模型将光谱投影到相同的 PLS 子空间中。在相同的子空间中,通过普通最小二乘法缩小主工具的预测特征与从工具的伪预测特征之间的差异,构建特征传递模型。此外,PLSCT 不需要与标准集对应的响应变量。正如预期的那样,在三个真实数据集上的实验结果表明,与 PDS、SBC、CCACT、GLSW 和 MSC 相比,PLSCT 模型更稳定,可以获得更准确的预测结果。PLSCT 模型之所以能取得如此显著的结果,是因为当从仪器的光谱被投射到这个子空间中时,一些与响应变量无关的散射等噪声效应会从光谱中去除,然后相同 PLS 子空间中的特征转移可以更准确地缩小主仪器的预测特征与从仪器的伪预测特征之间的差异。
1本节主要引用:Malli, B., A. Birlutiu, and T. Natschläger.“无标样校准转移 - 不同技术的评估。” 化疗。英特尔。实验室系统。 161 2017,49-60。
1本节主要引用: ZHAO Yuhui,“用于 NIR 定量分析的基于 PLS 子空间的校准转移”Molecules 2019, 24(7), 1289;
附录
表 6.A1.使用不同传输方法的三个数据集的 RMSEP.
PDS | SBC | CCACT | GLSW | MSC | PLSCT |
|
| |||
W 1 = 3 | W 1 = 5 | W 1 = 7 | ||||||||
| ||||||||||
N = 5 | 0.4142 | 0.4336 | 0.4354 | 0.5370 | 0.2411 | 0.4056 | 1.4302 | 0.1991 | 0.3538 | 0.2085 |
N = 10 | 0.3753 | 0.3617 | 0.3729 | 0.4440 | 0.2545 | 0.3696 | 1.4302 | 0.1980 | 0.2237 | |
N = 15 | 0.3507 | 0.3495 | 0.3357 | 0.4307 | 0.3663 | 0.3535 | 1.4302 | 0.2127 | 0.2425 | |
N = 20 | 0.3440 | 0.3440 | 0.3440 | 0.3900 | 0.2841 | 0.3208 | 1.4302 | 0.2087 | 0.2379 | |
N = 25 | 0.3373 | 0.3372 | 0.3366 | 0.3720 | 0.3528 | 0.3106 | 1.4302 | 0.2082 | 0.2314 | |
N = 30 | 0.3136 | 0.3135 | 0.3135 | 0.3511 | 0.3245 | 0.2921 | 1.4302 | 0.2038 | 0.2230 | |
| ||||||||||
N = 5 | 8.2434 | 9.1587 | 8.4226 | 14.3731 | 1.6248 | 4.0835 | 1.5160 | 1.8478 | 2.7176 | 0.5308 |
N = 10 | 8.5844 | 9.3534 | 10.8927 | 10.5310 | 1.2496 | 3.5824 | 1.5160 | 0.8588 | 2.2233 | |
N = 15 | 2.1373 | 2.8513 | 3.2012 | 8.7159 | 1.5315 | 2.9205 | 1.5160 | 1.8280 | 1.3985 | |
N = 20 | 1.9586 | 2.0927 | 2.2380 | 7.0482 | 0.9688 | 2.4743 | 1.5160 | 1.8263 | 0.4520 | |
N = 25 | 1.5656 | 1.6480 | 1.7445 | 6.1945 | 1.0437 | 1.9804 | 1.5160 | 0.6850 | 2.3661 | |
N = 30 | 1.3694 | 1.4468 | 1.5366 | 5.2635 | 0.7735 | 1.7085 | 1.5160 | 0.6604 | 2.2000 | |
| ||||||||||
N = 5 | 4.7971 | 4.2899 | 4.4594 | 5.9983 | 4.1302 | 6.5988 | 4.2482 | 3.3202 | 5.8027 | 3.3160 |
N = 10 | 4.1431 | 4.0098 | 4.0444 | 5.4720 | 4.1112 | 5.6721 | 4.2482 | 3.5821 | 5.5904 | |
N = 15 | 3.9698 | 3.8314 | 3.8347 | 5.7069 | 3.9357 | 6.2284 | 4.2482 | 3.3834 | 5.8043 | |
N = 20 | 3.9787 | 3.8789 | 3.9190 | 5.2838 | 3.8979 | 5.6511 | 4.2482 | 3.2794 | 5.0811 | |
N = 25 | 3.9263 | 3.8416 | 3.7789 | 5.2514 | 4.0549 | 5.4809 | 4.2482 | 3.2765 | 4.9428 | |
N = 30 | 3.8499 | 3.7931 | 3.7590 | 5.3699 | 3.8703 | 5.5354 | 4.2482 | 3.2195 | 4.2267 |
1 w 代表 PDS 方法的窗口大小;
2 Recalibration2:从机仪器标准集的校准模型;
3 Recalibration (重新校准):从仪器校准集的校准模型。
表6.答 2. PLSCT 和其他方法的 RMSEP 比较、RMSEP 改进和 Wilcoxon 符号秩检验的 p 值 (α = 0.05)(标准集中的样本数为 30)。
PLSCT | ||||
|
|
| ||
|
| 35.00575 | 51.77389 | 16.3743 |
| 0.00717 | 3.17 × | 3.2 × | |
| h (%) | 34.99841 | 54.35396 | 15.12146 |
p | 0.00717 | 2.23 × | 1.78 × | |
| h (%) | 34.98937 | 57.02112 | 14.35178 |
p | 0.00717 | 2.23 × | 1.2 × | |
SBC | h (%) | 41.95097 | 87.45319 | 40.04516 |
p | 0.011286 | 7.56 × | 4.84 × | |
CCACT | h (%) | 37.18537 | 42.18862 | 16.81376 |
p | 0.004455 | 0.001161 |
| |
GLSW | h (%) | 30.21822 | 61.34526 | 41.83697 |
p | 0.00717 | 8.53 × | 6.82 × | |
MSC | h (%) | 85.7502 | 56.43832 | 24.21448 |
p | 0.000531 | 1.57 × | 1.51 × | |
| h (%) | 8.610493 | 69.98222 | 23.82937 |
p | 0.017378 | 0.000231 | 3.05 × | |
| h (%) | 2.26298 | −24.4164 | 2.908651 |
p | 0.876722 | 9.06 × | 0.000198 |
1 括号中的数字代表 PDS 方法的窗口大小;
2h:RMSEP 改进;Wilcoxon 符号秩检验的 3pp 值.
6.3 基于仿射不变性的无标准样品 NIR 的校准传递11
与上述方法不同,本文研究了两种光谱仪上特征向量与预测值之间的线性模型关系。CTAI 样品如图 6.10(A) 所示。不需要从光谱仪的响应值,并且主样品和从样品之间不需要 map。样品在 PLS 模型下进一步处理。分别得到光谱特征和预测值,处理后的样本如图 6.10(B) 所示。我们分别获得特征向量和预测值之间的线性模型。根据两种工具的线性模型,进一步获得预测值之间的关系。首先,PLS 模型建立在主仪器上;其次,根据 PLS 模型分别提取特征矩阵和预测值;此外,在两个回归系数之间计算角度和偏差;最后,通过仿射变换对预测值进行校正。CTAI 的预测性能由两个 NIR 数据集验证。
图 6.10.CTAI 的数据设置。我们假设数据如图 6.10(A) 所示,基于主机的 PLS 模型处理后的数据如图 6.10.(B).
6.3 1 理论
6.3 11 仿射变换
本文重点介绍了二维仿射变换的旋转和平移特性[1, 2]。变换后,原始线条仍为直线,原始平行线仍为平行线。仿射变换是坐标的变换。推导如下:
图 6.11.仿射变换的推导。在坐标系中,P 的逆时针旋转相当于坐标系的顺时针旋转。
原始坐标系(黑色)中的点 P 为 (x, y)。点 P 的逆时针旋转等效于坐标系的顺时针旋转。因此,黑色坐标系中的点 P 与旋转后红色坐标系中的点 P 等效。基于这个结论,我们可以通过简单的立体几何来确定点 P 的坐标,然后根据这个位置加上 X 轴和 Y 轴的偏移量,公式如下:
哪里
6.3 12 基于仿射变换的校准传递方法
基于输入和输出
其中 F 是线性预测函数,在本文中通过偏最小二乘法获得;
因此,这两种工具的分数向量和预测值都不同。因此,分数向量和预测值之间的系数存在一定的偏差需要纠正。
校正偏差时,直接计算会产生较大的误差。为了解决这个问题,我们需要将主从工具的分数向量和预测值转换为 [0, 1] 范围,从而在不同值之间保持相同的小数位数。相应的方程式如下:
哪里
分数向量和预测值之间的两个线性回归方程如下所示:
哪里
为了更直观地反映两种工具之间的差异,可以从图 6.12 中更好地理解。蓝线是分数向量和预测值之间的回归系数。黑色和红色坐标系是主仪器和从仪器的观测值,与不同的观测值存在差异。
图 6.12.CTAI 理论。
两种仪器之间的未知斜率和偏置求解如下:
首先,回归系数
其次,分别对主从工具进行线性回归,并确定斜率和截距。
在 PLS 模型的基础上,分数矩阵和预测值的计算如下所示:
哪里
分数矩阵
根据每列的得分向量和预测值,分别使用最小二乘法计算相应的斜率和截距。公式如下:
哪里
最后,得到两种仪器之间的角度和偏置。计算角度和偏置的公式如下:
哪里
将方程 (6, 3.10) 获得的角度和偏差引入仿射变换中,以校正预测值。由于旋转角度是相对于坐标的原点的,因此在旋转之前需要调整每个样本。公式如下所示:
其中矩阵
分别对每个列得分向量和预测值进行求解,得到一个预测矩阵。预测矩阵的平均值是最终预测值。
因此,根据预测值的扩展,
6.3 13 CTAI总结
、从站的校准集 和测试集.
和系数 、权重矩阵 和加载矩阵 获得。
和
和 主从仪器 方程 (6.3.8).
和 分别由 方程 (6.3.6).
和 分别由 方程 (6.3.9).
angle 和 主仪器和从仪器之间的偏置 方程 (6.3.10)
由 方程 (6.3.8).
用于更正预测值 方程 (6.3.11).
|
6.3 2 实验
6.3 2.1 数据集描述
本节中使用的玉米和小麦数据集在 3 中详细描述。6.3 因此不在此进行描述。
6.3 2.2.确定最佳参数
CTAI 中 PLS 的潜在变量允许取集合 [1, 15] 中的值,它由 10 倍交叉验证确定。仅当 RMSECV 最低时,才会选择最佳潜在变量数。
采用 5 种方法进行比较,其中 PLS 中 SBC 、 CCA、PDS 和 MSC 的潜在变量范围和参数优化均与 CTAI 一致。特别是,PDS 中的窗口大小以 2 的增量从 3 到 16 搜索,并通过 5 倍交叉验证进行选择。此外,TCR 中 TCA 空间的维数在 [1, 24] 范围内估计,优化标准与 [24] 中所述一致.
6.3 2.3 模型性能评估
在这个实验中,均方根误差 RMSE 被用作参数选择和模型评估的指标。此外,RMSEC 是训练误差,RMSECV 表示交叉验证误差,RMSEP 表示测试集的预测误差。RMSE 计算方法写成:
哪里
偏差和标准误差 (SE) 也用作模型评估的参考指标。偏差和 SE 如下:
此外,Pearson 相关系数和相应的睾丸用于确定主仪器和从仪器之间是否存在线性关系。单样本 t 检验用于确定是否应该对预测结果实施偏差调整[11]。
为了进一步比较 CTAI 和其他方法,引用了另一个重要参数 (h) 以比较改进率,定义如下:
其中 RMSEP 表示 CTAI 的预测误差,而
此外,95% 置信水平的 Wilcoxon 符号秩和检验用于确定 CTAI 与其他检验之间是否存在显著差异。
6.3 3 结果与讨论
6.3 3.1 玉米数据集分析
表 6.2 显示了玉米数据集的 PLS 模型的训练误差、预测误差以及预测结果与实际结果的相关系数。我们可以看到,仪器 m5spec 之间 PLS 的 RMSEPm 小于仪器 mp6spec 的 RMSEPm。因此,m5spec 作为主仪器和 mp6spec 作为从仪器是更合理的选择。
桌子。62. PLS 模型和属性摘要。
|
|
|
|
|
|
|
|
|
| 0.00599 | 0.00764 | 0.01066(14) | 0.00080 | 0.99973 | 2.6e-24 |
|
| 0.02686 | 0.05664 | 0.05049(15) | -0.01327 | 0.93320 | 1.3e-7 |
|
| 0.05070 | 0.10066 | 0.11012(15) | 0.02814 | 0.97632 | 1.0e-10 |
|
| 0.09539 | 0.18993 | 0.19227(15) | 0.01789 | 0.97464 | 1.6e-10 |
|
| 0.09991 | 0.15637 | 0.14775(10) | -0.02678 | 0.92083 | 4.2e-7 |
|
| 0.06052 | 0.09098 | 0.09872(12) | 0.01868 | 0.87697 | 8.2e-6 |
|
| 0.10101 | 0.13338 | 0.15043(12) | 0.02128 | 0.96659 | 1.1e-9 |
|
| 0.27636 | 0.26723 | 0.35978(9) | 0.02124 | 0.93136 | 1.6e-7 |
B1 |
| 0.32880 | 0.33254 | 0.50337(15) | 0.00906 | 0.98508 | 2.3e-38 |
B2 |
| 0.21636 | 0.83755 | 0.32441(15) | -0.13124 | 0.84850 | 7.2e-15 |
B3 |
| 0.30288 | 0.51567 | 0.43896(15) | -0.03400 | 0.96009 | 3.2e-28 |
RMSECm:校准集的均方根误差
RMSEPm 测试集的均方根误差
RMSECV最小值:Cross-V alidation 的最小均方根误差
LV:仅当最低 RMSECV 时,才会选择最佳潜在变量的数量
rm:预测值与实际值的 Pearson 相关系数
p mp 值对应于 Pearson 相关系数,通过检验获得。
为了更全面地评估 CTAI 的预测性能,对 MSC、TCR、CCA、SBC 和 PDS 方法进行了测试。在这项工作中,当执行 PDS 时,PLS 被用来计算变换函数。对于 PLS 模型,潜在变量的最佳数量如表 6.2 所示。TCR 中子空间的最佳维数分别为 4 、 6 、 10 和 10。此外,PDS 的最佳窗口大小均为 3。
如表 6.3 所示,我们可以看到相关系数 rpre 和相应的 ppre 值表明主仪器和从仪器之间的预测值是线性相关的。我们可以看到 tpre 大于 t 临界值。然后,我们知道应该实施预测结果中的偏差调整。此外,没有对 slave 工具进行任何校正的预测 RMSE 显示的预测误差比 master 工具大。CTAI 校正结果导致预测的 RMSE 显著降低。同样的情况可以在
表 6.3. 未校正和 CTAI 校正之间的相关结果摘要。
| m5spec*-mp6spec | B1*-B2 | B1*-B3 | B3*-B2 | |||||
|
|
|
|
|
| ||||
| RMSEPupre | 1.60705 | 0.79890 | 2.06797 | 2.11743 | 0.69894 | 2.92541 | 1.23368 | |
| 0.21255 | 0.06922 | 0.13195 | 0.33358 | 0.31537 | 0.62632 | 0.65398 | ||
kpre | 0.64980 | 0.77129 | 0.94553 | 0.82527 | 0.88809 | 0.76290 | 0.86909 | ||
rpre | 0.81644 | 0.89598 | 0.96286 | 0.92197 | 0.97594 | 0.87695 | 0.93715 | ||
ppre | 1.1e-4 | 2.6e-6 | 2.3e-9 | 3.8e-7 | 2.0e-33 | 6.8e-17 | 1.3e-23 | ||
tpre | -15.429 | 19.335 | -19.147 | 8.838 | 2.292 | 10.684 | -3.826 | ||
RMSEPu | 1.60762 | 0.81532 | 2.09665 | 2.10291 | 0.71977 | 2.90011 | 1.08008 | ||
RMSEP | 0.21095 | 0.08233 | 0.16614 | 0.34714 | 0.41419 | 0.68215 | 0.38446 | ||
k | 0.65191 | 0.53297 | 0.98736 | 0.79329 | 0.96898 | 0.85693 | 0.93896 | ||
r | 0.81922 | 0.78858 | 0.95844 | 0.91487 | 0.96770 | 0.89517 | 0.97796 | ||
p | 1.0e-4 | 2.8e-4 | 5.1e-9 | 6.9e-7 | 2.2e-30 | 1.8e-18 | 2.5e-34 | ||
t | -15.437 | 19.657 | -19.408 | 8.762 | 2.256 | 10.649 | -3.701 | ||
tcritical_value | 2,131 | 2,131 | 2,131 | 2,131 | 2.010 | 2.010 | 2.010 |
*: 主乐器
RMSEPupre: 未校正的从属仪器相对于主仪器预测的 R MSEP
RMSEPpre:CTAI 校正从属仪器的 R MSEP 相对于主仪器预测
kpre:未校正的从属工具的预测值与主要预测之间的斜率
rpre: 相对于主预测的未校正从站预测的相关系数
ppre:通过检验获得对应于 Pearson 相关系数的 p 值。
tpre: 未校正的从预测和主预测之间的 单样本 t 检验的结果
RMSEPu:未校正的从仪器相对于主要实际值的 R MSEP
RMSEP: CTAI 校正的从属工具 相对于主要实际值的 R MSEP
k:未校正的从属指标的预测值与主要实际值之间的斜率
r:相对于初级实际值的未校正奴隶预测的 Pearson 相关系数
p:通过检验获得与 Pearson 相关系数对应的 p 值。
t:未校正的从属预测和主实际值之间的单样本 t 检验的结果
tcritical_value:显著性水平 alpha = 0.05 时 n-1 个自由度的 t 临界值
此外,表 6.4 和表 6.5 中列出的结果分别显示了不同方法的 16 个预测玉米样品之间的差异。一般来说,与其他五种方法相比,CTAI 的结果表现出最佳的预测性能。当使用水分作为特性时,虽然没有统计学上的显著差异,但与 CCA 和 TCR 相比,CTAI 的预测准确性大大提高。CTAI 与 MSC、SBC 和 PDS 之间的 95% 置信水平存在显著差异。当使用石油作为属性时,Wilcoxon 符号秩和检验的结果与 MSC 和 TCR 获得的结果相比显示出显着差异。与 CCA 、 SBC 和 PDS 相比,CTAI 的改善率更高。其他特性与油的性质相似,CTAI 实现了更好的预测性能。
表 6.4. 不同方法的 RMSEP 和 RMSEC 总结。m5spec 用作主光谱,mp6spec 用作玉米数据集的次级光谱。选择蛋白质含量作为小麦数据集的属性。
| CTAI | MSC | TCR | CCA | SBC | PDS | |
| RMSEC | 0.22646 | 1.92839 | 0.61873 |
|
|
|
RMSEP | 0.21095 | 1.66890 | 0.39066 |
|
|
| |
oil | RMSEC | 0.08141 | 1.21647 | 0.14543 |
|
|
|
RMSEP | 0.08233 | 1.23209 | 0.14225 |
|
|
| |
| RMSEC | 0.17247 | 1.77294 | 0.28297 |
|
|
|
RMSEP | 0.16614 | 1.80087 | 0.35223 |
|
|
| |
| RMSEC | 0.39517 | 1.89165 | 1.21093 |
|
|
|
RMSEP | 0.34714 | 1.93129 | 0.79852 |
|
|
| |
B1*-B2 | RMSEC | 0.55682 | 1.31153 | 0.99246 |
|
|
|
RMSEP | 0.41419 | 0.92194 | 0.86881 |
|
|
| |
B1*-B3 | RMSEC | 0.81895 | 2.91695 | 0.84682 |
|
|
|
RMSEP | 0.68215 | 2.40587 | 0.72996 |
|
|
| |
B3*-B2 | RMSEC | 0.54753 | 1.25096 | 0.76972 |
|
|
|
RMSEP | 0.38446 | 1.38468 | 0.63689 |
|
|
|
A:标准样品的数量
TC R 中带标签的从属仪器的样品数量为 20 个
表 6.5. CTAI 和其他方法的 RMSEP 比较,RMSEP 改进和 Wilcoxon 符号秩检验的 p 值 (α=0.05)。m5spec 用作主光谱,mp6spec 用作玉米数据集的次级光谱。选择蛋白质含量作为小麦数据集的属性。
MSC | TCR | CCA | SBC | PDS | ||||||
| p |
| p |
| p |
| p |
| p | |
| 87.35 | 4.3e-4 | 46.00 | 0.53 | 9.48 | 0.43 | 50.45 | 0.01 | 12.96 | 0.04 |
| 93.31 | 4.3e-4 | 42.12 | 0.01 | 27.98 | 0.32 | 1.52 | 0.23 | 13.28 | 0.46 |
| 90.77 | 4.3e-4 | 52.83 | 0.09 | 57.97 | 0.03 | 13.02 | 0.23 | 41.06 | 0.01 |
| 82.02 | 4.3e-4 | 56.52 | 0.23 | 59.49 | 0.83 | 6.09 | 0.02 | 56.04 | 0.75 |
B1*-B2 | 55.07 | 0.11 | 52.32 | 0.79 | 84.57 | 5.3e-9 | 11.44 | 2.6e-9 | 89.87 | 9.2e-3 |
B1*-B3 | 71.64 | 7.5e-10 | 6.55 | 0.11 | 38.30 | 1.8e-5 | 13.97 | 1.0e-5 | 48.92 | 9.8e-5 |
B3*-B2 | 72.23 | 3.1e-9 | 39.63 | 4.6e-3 | 83.27 | 0.02 | 28.18 | 7.5e-10 | 79.05 | 0.06 |
为了比较各种方法的预测稳定性,图 6.1 4-6.17 显示了校准集和测试集的测量值与预测值的图。如果模型预测得更好,则该点将更接近直线。如图 6.1 4-6.17 所示,MSC 偏离直线,预测性能最差。当使用淀粉作为特性时,CCA 的预测性能也很差。相反,据观察,CTAI 通常比其他方法更接近直线。此外,与其他标准误差相比,标准误差在 CTAI 中也取得了良好的结果。从上面的讨论中,可以很容易地得出结论,CTAI 可以实现最好的 RMSEPs。
图 6.14.玉米数据集预测的水分含量由 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定。蓝点和红点分别表示训练集和测试集中每个样本的结果。
图 6.15.玉米数据集预测的含油量由 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定。蓝点和红点分别表示训练集和测试集中每个样本的结果。
图 6.16.玉米数据集预测的蛋白质含量由 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定。蓝点和红点分别表示训练集和测试集中每个样本的结果。
图 6.17.玉米数据集预测的淀粉含量由 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定。蓝点和红点分别表示训练集和测试集中每个样本的结果。
6.3 3.2 小麦数据集分析
PLS 模型的 RMSEP 列于表 6.2 中。我们可以看到,工具B1的预测性能优于B3,工具B3优于B2。因此,三种组合 (B1-B2;B1-B3;B3-B2) 用于分析小麦数据集。每种组合的第一种乐器代表主乐器,第二种乐器代表从属乐器。对于 PLS 模型,潜在变量的最佳数量分别为 14 、 15 和 15;TCR 中子空间对应的最优维数为 17 、 12 和 17。此外,B1-B2、B1-B3 和 B3-B2 的最佳窗口大小数分别为 3、9 和 13。
从表 6.4 中可以看出,小麦数据集的两个工具的预测值之间存在线性关系。此外,从属仪器的未校正预测值与主仪器的预测值之间存在显著偏差。因此,我们可以通过仿射变换来校正从属工具的预测值。实验结果表明,CTAI 校正后的预测性能显著增强。我们发现,相对于主仪器实际值,从属仪器的未校正预测值也存在相同的现象。此外,对于 CTAI 的预测性能,图 6.18 显示了 B1-B2、B1-B3 和 B3-B2 的未校正预测值和校正预测值之间的差异。由此可见,CTAI 在预测值的校正中起着重要作用。
此外,表 6.4 列出了校准集和测试集的不同方法的结果。对于 B1-B2,CTAI 产生的 RMSEP 最低。此外,利用统计测试来评估小麦数据集的 CTAI 和其他方法之间的 RMSEP 差异。执行 Wilcoxon 符号秩和检验,显著性水平 alpha = 0.05。可以看出,与 CCA SBC 和 PDS 相比,存在统计学上的显着差异。此外,CTAI 对 MSC 和 TCR 的预测改进率分别高达 55.07% 和 52.32%。对于其他两种组合,CTAI 可实现最佳预测性能。与这 5 种方法相比,在 95% 置信水平上存在显著差异,或者 RMSEP 改进很大。
为了进一步显示不同模型的预测能力,图 6.19-6.21 中获得的测量值和预测值之间的相关性。可以看出,预期浓度和预测浓度之间具有良好的相关性,这证实了 CTAI 的良好性能。CTAI 在 3 个组合中达到最低的标准误差。此外,PDS 和 CCA 对小麦数据集的预测能力较差。对于 SBC、PDS 和 CCA,它们需要标准样品,而 TCR 需要从仪器样品的参考值,这两种值都很昂贵且难以获得。显然,这意味着 CTAI 表现出了更出色的性能。
图 6.18.(A) B1-B2、(B) B1-B3、(C) B3-B2 表示小麦数据集的未校正预测值与校正预测值之间的关系。 蓝点和红点分别表示每个样本的未校正和校正的预测结果。
图 6.19.小麦数据集的仪器 B1 和 B2 之间预测的蛋白质含量由 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定。蓝点和红点分别表示训练集和测试集中每个样本的结果。
图 6.20.小麦数据集的工具 B1 和 B3 之间预测的蛋白质含量由 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定。蓝点和红点分别表示训练集和测试集中每个样本的结果。
图 6.21.通过 (A) CTAI、(B) MSC、(C) TCR、(D) CCA、(E) SBC 和 (F) PDS 确定的小麦数据集的仪器 B3 和 B2 之间预测的蛋白质含量。蓝点和红点分别表示训练集和测试集中每个样本的结果。
6.3 4 结论
本研究研究了不同仪器上特征向量与预测值之间的系数关系,提出了 CTAI 用于无标准样本的校准转移。结果表明,仿射变换可以减少预测误差。使用两个 NIR 数据集预测了不同的转移方法,证明 CTAI 成功用于校正不同仪器上的差异。CTAI 的性能优于 MSC、TCR、CCA、SBC 和 PDS。因此,当标准样品在实际应用中不可用时,所提出的方法可能提供一种有效的校准转移方法
6.3.5 R引用
Shrivastava, SC “仿射变换综述。”
贾燕斌.“齐次坐标中的变换。”大学讲座 (2013)。
1本章节主要引用:Z郝宇辉,“基于仿射不变性的无标准样品近红外校准转移”,分子 2019, 24(9), 1802;