• Matlab工具箱N-way的使用


    介绍

    MATLAB的N-way工具箱提供了一组函数和算法,利用一些多线性模型来对多维数据集进行建模。

    开发环境:MATLAB 5.x

    支持的约束:非负、单峰

    工具箱下载:https://ucphchemometrics.com/wp-content/uploads/2023/09/Nway-Version-3.5.zip

    在线教程:https://ucphchemometrics.com/n-way-course/

    本文余下部分为教程笔记。教程数据集下载:https://ucphchemometrics.com/wp-content/uploads/2023/03/NWAYCOurse.zip

    在MATLAB中处理多维数据

    数据:claus.mat。它包含了5个样本的荧光EEM数据。样本包含的化合物:色氨酸、苯丙氨酸、酪氨酸。

    打开Matlab R2021a,使用导入数据功能,选择claus.mat。导入结果如下。

    名称
    DimX[5,201,61]
    X5x12231 double

    数据重整:X = reshape(X, DimX)

    绘制所有样本的发射光谱(Emission spectra):plot(X(:,:,c)'),其中c为激发波长。

    绘制所有样本的激发光谱(Emission spectra):plot(squeeze(X(:,1,:))'),其中c为发射波长。(size(X(:,1,:))=[a,1,b],需要使用squeeze函数将其尺寸压缩为[a,b])

    绘制第i个样本的立体三维图:mesh(reshape(X(i,:),DimX(2),DimX(3)))。(reshape结果可加撇)

    基础PARAFAC建模

    CANDECOMP-PARAFAC模型于1970年提出,在化学计量学中通常被称为PARAFAC。其固有的独特性使其成为化学计量学中解析纯底层光谱组分的常用模型。

    拟合PARAFAC模型:[Factors] = parafac(X,3);

    可视化Factors: plotfac(Factors)

    将Factors分配到分数与负载(就是三元组的值依次赋值给三个变量):[A,B,C] = fac2let(Factors)

    A的值为样本维负载,B的值为em维负载,C的值为ex维负载。可视化:plot(B);plot(C);。分数与浓度成正比,如果需要确定具体的浓度值,则需要已知浓度的样本作为参考,然后按比例计算出其他样本的浓度。这个过程称为二阶校准(https://ucphchemometrics.com/help-on-parafac-concentrations/)。

    确定组分数:使用分半分析、核一致性等。如果模型有效,则核一致性接近100%。如果核一致性接近50%,则模型不稳定,施加适当的约束可能会提高稳定性。在实践中,核一致性随着组分数增加而缓慢下降,在组分数超过正确值时急剧下降。

    算法的收敛性:PARAFAC模型的拟合算法是交替最小二乘法。该算法是迭代的,当两个连续迭代之间的相对拟合差低于某个阈值时停止。阈值的默认值为10^-6。对于某些数据,模型很难拟合,因此可能需要设置较大的阈值。

    高级PARAFAC建模

    重叠的荧光数据可以分解为分数和负载向量,这些向量代表激发光谱、发射光谱、化学分析物浓度的估计值。

    施加约束的帮助在PARAFAC.m文件中。

    parafac函数的文档节选如下。

    parafac(X,Fac,Options,const);
    
    Options:可选参数。如果取0,则使用默认值。
    
    const:一个向量,指定各维度上的限制。
     0 => 无限制,
     1 => 正交
     2 => 非负
     3 => 单峰(且非负)
     对于三维问题,[0 0 0]代表无限制的取值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    可以利用已建立的模型确定新样本的分数。

    预处理

    居中的目的:删除数据中的常量项

  • 相关阅读:
    DOM property 和 attribute 的区别
    面试突击48:死锁的排查工具有哪些?
    java集合框架------Collection接口
    Alevel物理测量学真题解析
    Java基础进阶集合-Collection接口
    线性回归模型
    uni-app 微信小程序问题集锦
    python自动化之项目实战准备(第一天)
    不用找,你想要的卡车 SolidWorks模型素材都在这里
    【数据结构】单链表详解(超详细)
  • 原文地址:https://blog.csdn.net/holeer/article/details/133871745