AI算法19-偏最小二乘法回归算法Partial Least Squares Regression | PLS

news2024/12/23 20:27:58

偏最小二乘法回归算法简介

算法概述

偏最小二乘法模型可分为偏最小二乘回归模型和偏最小二乘路径模型。其中偏最小二乘回归模型是一种新型的多元统计方法,它集中了主成分分析、典型相关分析和线性回归的特点,特别在解决回归中的共线性问题具有无可比拟的优势。偏最小二乘回归模型虽然与主成分分析有关系,但它不是寻找响应和独立变量之间最小方差的超平面,而是通过投影预测变量和观测变量到一个新空间来寻找一个线性回归模型。特别当两组变量的个数很多,且存在多重相关性,而观测数据的数量较少时,用偏最小二乘回归建立的模型具有传统的经典回归分析等方法所没有的优点。

偏最小二乘路径模型是偏最小二乘法的应用,可以应用于一些难以直接观测的现象进行分析,也可以考察分析现象之间的关联关系等。偏最小二乘路径模型降低了结构方程需要大量的样本数据,且观测变量服从多元正态分布的要求。模型的工作目标与结构方程模型基本一致,但与结构方程基本协方差矩阵建模的思路不同,偏最小二乘路径模型采用的是一系列一元或多元线性回归的迭代求解。在实际应用中无需对观测变量做特定的概率分布假设,也不存在模型不可识别问题,并且由于采用偏最小二乘法,对样本容量的要求也非常宽松。由此可见,偏最小二乘路径模型是一种更加实用和有效的线性建模方法。

算法发展历史

1975年,在求解实际应用中发现很多的问题不能用结构方程求解,所以伍德等人提出更为简单的分析技术,即偏最小二乘路径模型。与结构方程相比,该方法使用条件更为广泛,效果更好。

1983年,瑞典统计学家Herman Wold和阿巴诺最先提出了最小二乘法,并将其应用于社会科学中;然后由赫曼的儿子Svante Wold发展这个理论。

特别是近十年来,偏最小二乘在理论、方法和应用方面都得到了迅速的发展。密西根大学的佛奈尔教授称偏最小二乘回归为第二代回归方法。

偏最小二乘法回归算法原理

现实问题中的自变量之间往往会存在大量的自相关情况,所以对这类问题使用普通的最小二乘法不能够求解;这是因为变量多重相关性会严重危害参数估计,扩大模型误差,并且破坏模型的稳定性。偏最小二乘法开辟了一种有效的技术途径,它利用对系统中的数据信息进行分解和筛选的方式,提取对因变量的解释性最强的综合变量,辨识系统中的信息与噪声,从而更好地克服变量多重相关性在系统建模中的不良作用。

第一步:对原始数据X和Y进行标准化得到X0和Y0,其中X为m维的数据,Y是p维的数据;从Y0中选择方差最大的一列作为u1,方便后面计算;因为选取方差最大就表示该列是最能反映原始数据信息的一列,即根据主成分分析的思想,我们称这列向量为第一主成分,并使X与Y之间的相关性达最大。

标准化后的矩阵:

第二步:迭代求解X与Y的变换权重(w1,c1)和综合因子(t1,u1),直到收敛;

假设X与Y提取的主成分为t1和u1,t1是自变量集的线性组合:,u1是因变量集的线性组合:;为了回归分析的需求,需要满足两个要求:t1和u1各自尽可能多的提取所在变量组的变异信息;t1和u1的相关性达到最大。

计算公式:

利用第一步选择的Y中的列,求解X的变换权重因子

利用X的信息t1,求解Y的变换权重c1,并且更新因子u1的值

判断是否已找到合理的解,否则继续寻找。

其中t1和u1的估计方程为:

第三步:求X与Y的残差矩阵;

计算公式:

1.求X的载荷P1,载荷是反映X0和因子T1的直接关系:

2.求X0的残差X1,残差表示了u1不能反映X0信息的部分:

3.求Y的载荷Q1:

4.建立X因子t1与Y因子u1之间的回归模型,并用t1预测u1的信息;

5.求Y0的残差Y1,这个值表达了X与因子t1所不能预测的Y0中的信息:

第四步:利用X1与Y1,重复上述步骤,求解下一个主成分的偏最小二乘的参数。

最后得到偏最小二乘回归模型的回归方程,还应该对回归系数进行检验;一般情况下,可以通过交叉有效性检验来确定。交叉有效性检验通过求解预测误差平方和与误差平方和的比值,这个比值越小越好,一般设置的限定值为0.05,所以当该比值越小,增加新的主成分有利于提高模型的精度;反之认为增加新的成分,对减少方程的预测误差无明显的改善作用。

定义交叉有效性:

这样,在建模时每一步计算结束前,均进行交叉有效性检验,如果在第h步有

时模型已达到精度要求,可停止提取成分,若

表示第h步提取的

成分的边际贡献显著,应继续第h+1步计算。

偏最小二乘法回归算法代码实现

import numpy as np


def pls_regression(X, Y, L):
    """
    偏最小二乘回归算法。
    
    参数:
    X : numpy.ndarray
        特征矩阵,每一行是一个样本,每一列是一个特征。
    Y : numpy.ndarray
        目标矩阵,每一行是一个样本,每一列是一个目标变量。
    L : int
        要提取的潜在变量数量。
    
    返回:
    T : numpy.ndarray
        X的得分矩阵。
    U : numpy.ndarray
        Y的得分矩阵。
    P : numpy.ndarray
        X的权重矩阵。
    Q : numpy.ndarray
        Y的权重矩阵。
    """
    n, p = X.shape
    m, _ = Y.shape
    W = np.zeros((p, L))
    Q = np.zeros((p, L))
    P = np.zeros((m, L))
    U = np.zeros((m, L))
    T = np.zeros((n, L))

    for i in range(L):
        # 计算权重向量
        Xtx = X.T @ X
        Xty = X.T @ Y
        W[:, i] = Xty / np.sqrt(Xtx @ W[:, i])

        # 计算得分向量
        T[:, i] = X @ W[:, i]

        # 计算Y的权重和得分
        Yty = Y.T @ Y
        U[:, i] = Yty @ W[:, i] / np.linalg.norm(W[:, i])
        Q[:, i] = Y.T @ U[:, i]

        # 计算X和Y的权重
        P[:, i] = Xty @ U[:, i].T / np.linalg.norm(U[:, i])

        # 去相关
        X = X - T @ W[:, i].T
        Y = Y - U[:, i] @ Q[:, i].T

    return T, U, P, Q


# 示例数据
X = np.random.rand(100, 10)  # 100个样本,10个特征
Y = np.random.rand(100, 1)  # 100个样本,1个目标变量

# 调用PLS回归函数
L = 3  # 假设我们想要3个潜在变量
T, U, P, Q = pls_regression(X, Y, L)

# 使用得到的权重和得分进行预测
Y_pred = T @ P.T

偏最小二乘法回归算法优缺点

算法优点:

  1. 处理多重共线性:PLS能够在自变量存在严重多重相关性的条件下进行回归建模 。
  2. 样本量少于变量数:允许在样本点个数少于变量个数的条件下进行回归建模 。
  3. 包含所有自变量:在最终模型中将包含原有的所有自变量 。
  4. 辨识系统信息与噪声:模型更易于辨识系统信息与噪声,包括一些非随机性的噪声 。
  5. 易于解释的系数:每一个自变量的回归系数将更容易解释 。
  6. 预测性能:在提取主成分的过程中,考虑了自变量与因变量之间的关联,使得提取的主成分能同时优化因变量预测性能,因此通常在预测任务上能取得更好的结果 。
  7. 适用于高通量数据:适用于诸如基因组学、转录组学等高通量数据分析,在这些领域中自变量数目可能大于样本数 。

算法缺点:

  1. 线性假设限制:PLS回归本身是线性模型,尽管可以处理一定程度的非线性关系,但在非线性关系强烈的场景下可能不如非线性模型有效 。
  2. 模型选择问题:在PLS中,需要选择合适的潜在变量数量,这可能需要依赖经验和交叉验证来确定 。
  3. 计算复杂性:相比于简单的线性回归,PLS的计算过程更为复杂,可能需要更多的计算资源。
  4. 过度依赖主成分:如果主成分不能很好地代表数据的变异性,PLS模型可能无法提供准确的预测 。
  5. 对异常值敏感:PLS方法可能对数据中的异常值比较敏感,这可能影响模型的稳定性和预测能力 。

偏最小二乘法回归算法应用

偏最小二乘法回归算法(PLS)在多个领域有着广泛的应用,以下是一些常见的应用场景:

  1. 化学计量学:PLS回归特别适用于处理化学光谱数据分析,例如近红外光谱(NIR)、紫外可见光谱(UV-Vis)、拉曼光谱等。这些光谱数据通常包含大量的变量(如不同波长处的吸光度),并且各变量间可能存在高度相关性。通过PLS回归,研究者可以从复杂的光谱数据中构建预测模型,将光谱信息与样品的化学成分、物理性质或工艺参数等联系起来,实现无损、快速的定量或定性分析 。
  2. 金融行业:在风险管理中,PLS回归能够处理多种可能具有共线性的财务指标,帮助金融机构预测公司的信用风险、违约概率或其他金融表现指标。通过结合众多的财务报表数据,如资产负债率、流动比率、盈利能力指标等,PLS回归模型可以发现这些变量与潜在违约行为间的非线性关系,从而优化风险评估体系 。
  3. 生物医学研究:在基因表达数据分析中,PLS回归被用来探索基因表达谱(如RNA测序或微阵列数据)与临床表型(如疾病状态、药物反应、生存率等)之间的关联。由于基因数据通常是高维度且具有噪声,而样本数量相对较少,因此PLS回归能够减少数据维度,并在小样本情况下找到基因表达模式与疾病发展或治疗响应的重要关联 。
  4. 环境科学:PLS回归在环境科学中被用于分析环境污染物的监测数据,预测环境质量变化趋势。通过处理高维且可能存在多重共线性的环境监测数据,PLS回归可以帮助科学家更准确地预测和评估环境变化 。
  5. 社会科学:在社会科学研究中,PLS回归常用于分析复杂的社会经济数据,如消费者行为、社会态度等。由于这些数据通常包含多个相关变量,PLS回归能够提取关键因素,建立预测模型 。
  6. 市场营销和战略管理:PLS回归在市场营销和战略管理中被用来分析消费者满意度、品牌忠诚度等多维数据,帮助企业更好地理解市场动态和消费者需求 。
  7. 小样本数据分析:PLS回归特别适用于小样本数据的情况。在样本数量较少但变量较多的情况下,PLS回归能够通过提取主成分进行有效的回归分析,避免了传统回归方法在这种情况下可能出现的问题 。
  8. 高维数据处理:在自变量和因变量维数都很高的情况下,PLS回归通过降维技术,能够提炼出最重要的信息并构建预测模型,提高了模型的解释性和预测性能 。
  9. 处理多重共线性:PLS回归能够有效克服因变量和自变量之间存在的多重共线性问题,即使自变量之间高度相关,也能通过提取主成分进行有效的回归分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1929521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在JavaScript中,什么是解构赋值(destructuring assignment)?

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介在JavaScript中,什么是解构赋值(destructuring assignment)?1. 引言2. 解构赋值的概念3. 数组解构赋值3.1 基本语法3.2 跳过元素3.3 默认值3.4 交换变量值 4. 对象解构赋值4.1 基本语…

“解锁物流新纪元:深入探索‘沂路畅通‘分布式协作平台“

"解锁物流新纪元:深入探索沂路畅通分布式协作平台" 在21世纪的数字浪潮中,物流行业作为连接生产与消费的关键纽带,其重要性不言而喻。然而,随着市场规模的持续扩大和消费者需求的日益多样化,传统物流模式已…

150个pb网站模板(都是成品网站,上传php空间即可使用),建站必备

一网友提供的150个pb网站模板,其实就是成品网站,上传php空间即可使用,属于建站公司或者建站开发人员必备的资源。 一共150个基于pb的成品网站,基本上都可以找到适应你手头客户需要的一款,简单修改一下即可交活收钱了。…

LinuxShell编程1———shell基础命令

文章目录 前言 一、shell基础知识 1、shell概念 2、Shell的功能 接收:用户命令 调用:相应的应用程序 解释并交给:内核去处理 返还:内核处理结果 3、Shell种类(了解) 3.1、MS-DOS 3.2、Windows的…

图片在线怎样做二维码?制作二维码展示图片的制作方法

图片想要更快捷的分享给其他人展示,除了通过网站平台之外,比如朋友圈、qq空间、微博等方式外,现在很多人也会通过生成二维码的方法,让其他人可以通过扫描二维码查看图片。图片转换二维码的好处有很多,比如可以节省空间…

【C++航海王:追寻罗杰的编程之路】智能指针

目录 1 -> 为什么需要智能指针? 2 -> 内存泄漏 2.1 ->什么是内存泄漏,以及内存泄漏的危害 2.2 -> 内存泄漏分类 2.3 -> 如何避免内存泄漏 3 -> 智能指针的使用及原理 3.1 -> RAII 3.2 -> 智能指针的原理 3.3 -> std…

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址:https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字,项目路径,选择maven,点击下面的创建 运行项目 …

贪心,CF 1891C - Smilo and Monsters

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1891C - Smilo and Monsters 二、解题报告 1、思路分析 操作二显然很划算的,但是操作2有代价,为了更划算,我们要让操作2的操作次数最少 即,操作二尽可能用在…

Apollo docker-compose

来源 https://www.apolloconfig.com/#/zh/deployment/quick-start-docker 路径 /usr/apollo Sql 自己复制 Vim docker-compose.yml #如果安装过了 记得删除mysql 历史文件 rm -r /var/lib/mysql version: 2.1services:apollo-quick-start:image: nobodyiam/apollo-quick…

MongoDB教程(六):mongoDB复制副本集

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…

React 速通笔记

前言 最近刚学完 React,想着把笔记分享给大家,本笔记特别适合从事后端想要学习前端的人。我看视频是黑马最新的 React 视频(黑马程序员前端React18入门到实战视频教程,从reacthooks核心基础到企业级项目开发实战(B站评…

Windows 2012安装之实现远程连接

新建虚拟机 点击稍后安装操作系统 点击Microsoft Windows(W) 选择Windows Server 2012 设置虚拟机名称、安装位置 选择你的电脑核数 点击编辑虚拟机设置 点击CD/DVD(SATA) 使用ISO映像文件(M) 配置完之后点击确定 然后开启虚拟机 下一步: 点击现在安装&#xff1a…

51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动大屏_硬件SPI4_参考代码(v1.3)

单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64U、STC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。…

Java 反射用法和8道练习题

目录 一、什么是反射二、反射的核心接口和类三、测试代码 Bean 类和目录结构Person 类代码目录结构 四、获取 Class 对象五、获取构造方法 Constructor 并使用六、获取成员变量 Field 并使用七、获取成员方法 Method 并使用八、练习1. 使用反射获取String类的所有公有方法&…

在python里构建你的投资组合portfolio--最好用的pandas零基础

有人可能觉得软件数据分析门槛很高,自学也坚持不下来, 其实分解成一个小的功能和任务,对零基础自学者非常有帮助。 今天用python中最好用的数据分析包pandas为例: 用最简单的代码完成全流程 构建投资组合 → 获取数据 → 进行分…

均匀性大于98%均匀光源积分球

在光学技术的浩瀚星空中,均匀光源积分球犹如一颗璀璨的明珠,以其卓越的均匀性能,照亮了科研、检测、照明等多个领域的探索之路。当谈及均匀性超过98%的积分球时,我们不禁要深入其内部,探索这一科技奇迹背后的原理与应用…

phenocycler发现免疫治疗反应关键的肿瘤微环境区域

T 细胞介导的抗原特异性反应对于有效的免疫监视至关重要。然而T细胞如何进入肿瘤微环境并操纵局部组织微环境来实现效应器功能,以及这些局部的细胞结构如何对T细胞疗法或者其他免疫治疗做出反应仍然不清楚。近期来自斯坦福大学的研究者利用小鼠模型和临床患者样本&a…

10位工程师做SW大装配设计工作站怎么选

在日益复杂的工程环境中,SolidWorks(SW)作为一款全球装机量较大的三维设计、动画、仿真模拟计算软件,已成为工程师们不可或缺的工具。 对于涉及大型装配设计的项目,选择一款合适的SW工作站显得尤为关键。在选择SW大装…

【0630开发者活动】机器学习算法在存内计算芯片WTM2101上的部署

前言 WTM2101芯片是由Witin知存科技开发的高性能存内计算芯片,专为加速AI计算设计,如图1.1所示。存内计算作为一种革命性技术,其主要优势在于将计算功能直接集成到存储器中,从而显著减少数据在芯片内部的传输距离,降低…

【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)

2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…