大数据-207 数据挖掘 机器学习理论 - 多重共线性 矩阵满秩 线性回归算法

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(正在更新…)

章节内容

上节我们完成了如下的内容:

  • 多元线性回归 回归算法实现
  • 多元线性回归 算法评估指标

在这里插入图片描述

代码实现

使用 scikit-learn 算法库实现线性回归算法,并计算相应评价指标。回顾前文介绍的相关知识进行下述计算。

from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.fit(data.iloc[:,:-1].values,data.iloc[:,-1].values)
reg.coef_ # 查看方程系数
reg.intercept_ # 查看系数

对比手动计算的 ws,其结果高度一致。
然后计算模型 MSE 和判别系数:

from sklearn.metrics import mean_squared_error,r2_score
yhat = reg.predict(data.iloc[:,:-1])
mean_squared_error(y,yhat)
r2_score(y,yhat)

多重共线性

虽然在线性回归求解过程中,通过借助最小二乘法能够迅速找到全域最优解,但最小二乘法本身使用条件较为苛刻,必须要求当 XTX 为满矩阵时才可以进行逆矩阵或广义矩阵的求解。在实际应用中经常会遇到矩阵不存在矩阵或广义逆矩阵的情况,并且当 X 的各列存在线性相关关系(即多重共线性)的时候,最小二乘法的求解结果不唯一。

这里需要注意是,在进行数据采集的过程中,数据集各列是对同一个客观事物进行客观描述,很难避免多重共线性的存在,因此存在共线性是很多数据集的一般情况。当然更为极端的情况则是数据集的列比行多,此时最小二乘法无法对其进行求解。因此,寻找性回归算法的优化方案势在必行。
首先我们来了解多重共性,在第二节中我们曾推导了多元线性回归使用最小二乘法的求解原理,我们对多元线性回归的损失函数求导,并得出求解系数 w 得式子和过程:

在这里插入图片描述
在最后一步中我们需要左乘 XTX 的逆矩阵,而矩阵存在得充分必要条件是特征不存在多重共线性。

矩阵存在的充分必要条件

首先,我们需要先理解逆矩阵存在与否的意义和影响,一个矩阵什么情况下会有逆矩阵?
根据逆矩阵的定理,若 |A| != 0,则矩阵A 可逆,且:

在这里插入图片描述

其中 A* 是矩阵 A 的伴随矩阵,任何矩阵都可以有伴随矩阵,因此这一部分不影响逆矩阵的存在性,而分母上行列式|A|就不同了,位于分母变量不能为 0,一旦为 0 则无法计算出逆矩阵。因此逆矩阵存在的充分必要条件是:矩阵的行列式不能为 0,对于线性回归而言,即是说|XTX|不能为 0,这是使用最小二乘法求解线性回归的核心条件之一。

行列式不为 0 的充分必要条件

那行列式不为 0,需要满足什么条件?在这里,我们复习一下线性代数中的基本知识,假设我们的特征矩阵 X结构为(m,n),则 XTX 就是结构为(n,m)的矩阵,从而得到结果为(n,n)的矩阵。

因此以下所有的例子都将以方矩阵进行举例,方便大家理解,首先区别一下矩阵和行列式:
在这里插入图片描述

任何矩阵都可以有行列式,以一个 3*3 的行列式为例,我们来看看行列式如何计算的?
在这里插入图片描述
这个式子乍一看非常混乱,其实并非如此,我们把行列式按照下面的方式排列一下,很容易就看出这个式子实际上怎么回事了:
在这里插入图片描述
三个特征的特征矩阵的行列式就有六个交互项,在现实中我们特征矩阵不可能是如此低维度数据,因此使用这样的方式计算就变得异常困难。在线性代数中,我们可以通过行列式的计算将一个行列式整合成一个梯形的行列式:
在这里插入图片描述
梯形的行列式表现为,所有的数字都被整合到对角线的上方或下方(通常是上方),虽然具体的数字发生了变化(比如由 x11 变成了 a11),但是行列式的大小在初等行变换的过程中是不变的,对于梯形行列式,行列式的计算要容易的多:
在这里插入图片描述
不难发现,由于梯形行列式下半部分为 0,整个矩阵的行列式其实就是梯形行列式对角线上的元素相乘。并且此时时刻,只要对角线上的任意元素为 0,整个行列式都会为 0,那只要对角线上没有一个元素为 0,行列式就不会为 0。在这里我们映入一个重要的概念:满秩矩阵。

矩阵满秩的充分必要条件

一个矩阵要满秩,则转换为梯形矩阵后的对角线上没有 0,那什么样的矩阵在对角线上没有 0?来看下面的三个矩阵:
在这里插入图片描述
我们可以对矩阵做初等行变换和列变换,包括交换行/列顺序,将一列/一行乘以用一个常数后加减到另一个一列/一行上,来将矩阵化为梯形矩阵,对于上面的两个矩阵我们可以有如下变换:
在这里插入图片描述
继续进行变换:
在这里插入图片描述
如此就转换成了梯形矩阵,我们可以看到,矩阵 A 明显不是满秩的,它有全零行所以行列式会为 0,而矩阵 B 和 C 没有全零行所以满秩。
而矩阵 A 和矩阵 B 的区别在于,A 中存在完全具有线性关系的两行(1,1,2 和 2,2,4),而 B 和 C 中则没有这样的两行。
而矩阵 B 虽然对角线上每个元素都不为 0,但具有非常接近于 0 的元素 0.02,而矩阵 C 的对角线上没有任何元素特别接近于 0。

矩阵 A 中第一行和第三行的关系,被称为:精确相关关系,即完全相关,一行可使另一行为 0,在这种精确相关关系下,矩阵 A 的行列式为 0,则矩阵 A 的逆不可能存在。在我们的最小二乘法中,如果矩阵 XTX 中存在这种精确相关关系,则逆不存在,最小二乘法完全无法使用,线性回归会无法求出结果。

在这里插入图片描述
矩阵 B 中第一行和第三行的关系不太一样,他们之间非常接近于精确相关关系,但又不是完全相关,一行不能使领一行为 0,这种关系被称为 高度相关关系。这种高度相关关系下,矩阵的行列式不为 0,但是一个非常接近 0 数,矩阵 A 的逆存在,不过接近于无限大。在这种情况下,最小二乘法可以使用,不过得到的逆会很大,直接影响我们对参数向量 w 的求解:

在这里插入图片描述
这样求解出来的参数向量 w 会很大,因此会影响建模的结果,造成模型有偏差或者不可用。精确相关关系和高度相关关系并称为多重共线性。在多重共线性下,模型无法建立,或者模型不可用。
相对的,矩阵 C 的行之间结果相互独立,梯形矩阵看起来非常正常,它的对角线上没有任何元素特别接近于 0,因此其行列式也就不会接近0 或者为 0,因此矩阵 C 得出的参数向量 w 就不会有太大的偏差,对于我们拟合而言是比较理想的。

在这里插入图片描述
从上面的所有过程我们可以看得出来,一个矩阵如果要满秩,则要求矩阵中每个向量之间不能存在多重共线性,这也构成了线性回归算法对于特征矩阵的要求。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sql专题 之 常用命令

文章目录 查询基础语法查询全表查询选择查询&#xff1a;常量和运算&#xff1a; 条件查询where运算符&#xff1a;、 !、<、>空值&#xff1a;null模糊查询&#xff1a;like逻辑运算&#xff1a;and or not 去重&#xff1a;distinct排序&#xff1a;order by截断和偏移…

网络原理(应用层)->HTTPS解

前言&#xff1a; 大家好我是小帅&#xff0c;今天我们来了解HTTPS, 个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G 文章目录 1.HTTPS1.1HTTPS 是什么&#xff1f;1.2 "加密" 是什么1.3 HTTPS 的⼯作过程1.3. 1对称加密1.3.2⾮对称加密 1.4中间人攻击1.5 证书…

计算机网络:简述LAN口模式下NAT和代理的区别

LAN口模式 NAT和代理的区别 LAN口模式下的NAT和代理的区别主要体现在定义、功能和应用场景上。 # NAT和代理的定义和功能 ‌NAT&#xff08;网络地址转换&#xff09;‌&#xff1a;NAT是一种网络地址翻译技术&#xff0c;它将内部私有IP地址转换为公网IP地址&#xff0c;使得…

java项目之协力服装厂服装生产管理系统的设计与实现(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的协力服装厂服装生产管理系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; …

排序算法之插排希尔

算法时间复杂度&#xff08;最好&#xff09;时间复杂度&#xff08;平均&#xff09;时间复杂度&#xff08;最差&#xff09;空间复杂度插入排序O(n&#xff09;O(n^2)O(n^2)1希尔排序O(n)O(n^1.3)O(n^2) 1 1.插入排序 玩牌时&#xff0c;每得到一张&#xff0c;就要把它插入…

SSH实验1

Telnet实验&#xff1a; 服务端&#xff1a; 安装telnet的服务端并启动: 用本机telnet连接服务端&#xff08;连接不上&#xff0c;因为防火墙没放行telnet服务&#xff09;&#xff1a; 使防火墙放行telnet服务&#xff08;登录成功&#xff09;&#xff1a; SSH实验&#x…

Vue(JavaScript)读取csv表格并求某一列之和(大浮点数处理: decimal.js)

文章目录 想要读这个表格&#xff0c;并且求第二列所有价格的和方法一&#xff1a;通过添加文件输入元素上传csv完整&#xff08;正确&#xff09;代码之前的错误部分因为价格是小数&#xff0c;所以下面的代码出错。如果把parseFloat改成parseInt&#xff0c;那么求和没有意义…

密码学知识点整理一:密码学概论

密码学是什么&#xff1f; 密码学是一门研究编制密码和破译密码的技术科学。 密码学&#xff0c;作为信息安全的核心技术之一&#xff0c;其重要性在于能够为信息传输提供安全保障&#xff0c;确保数据在存储或传输过程中的机密性、完整性与真实性不被破坏。从古至今&#x…

2024.11.5- Redis(3)

五 Redis的发布订阅 5.1 介绍 Redis通过publish、subscribe和psubcribe、Unsubscribe和punsubscribe等命令实现发布、订阅和退订功能。这些命令被广泛用于构建即时通信应用&#xff0c;比如网络聊天室(chatroom)和实时广播、实时提醒等。 ​ 角色: -- 客户端通过PUBLISH命令向…

【时间之外】IT人求职和创业应知【27】

目录 新闻一物理智能公司完成4亿美元融资 新闻二A股IPO和再融资受理、审核回暖 新闻三AI流量变现财富峰会举办 认知和思考决定了你的赚钱能力。以下是今天可能引起你思考的热点新闻&#xff1a; 今日关键字&#xff1a;没吃过猪肉&#xff0c;还没见过猪跑吗&#xff1f; 新…

【软考网工笔记】网络基础理论——数据链路层

文章目录 按照分布范围对计算机网络进行划分MAC帧格式按照 802.1d 协议&#xff0c;交换机的端口状态ISDN-综合业务数字网以太网中退避机制生成树协议的工作过程链路聚合技术数字编码的过程信道复用技术802.11系列标准NRZ-I 反向不归零码千兆以太网标准百兆以太网标准PON 接入技…

linux mysql8大小写敏感问题

问题描述 在windows或者macOs&#xff0c;mysql对表明的大小写是不敏感的&#xff0c;但是在linux上是敏感的。笔者写了一个程序&#xff0c;程序里的sql语句没有注意大小写问题&#xff0c;访问windows的mysql没有问题&#xff0c;但访问Linux的就出问题了。于是着手解决这个…

云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例

云集电商&#xff0c;一家聚焦于社交电商的电商公司&#xff0c;专注于‘精选’理念&#xff0c;致力于为会员提供超高性价比的全品类精选商品&#xff0c;以“批发价”让亿万消费者买到质量可靠的商品。面对近年来外部环境的变化&#xff0c;公司对成本控制提出了更高要求&…

Claude 3.5 Sonnet模型新增了PDF支持功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

02-5分钟打造鸿蒙第一个应用程序

大家好&#xff0c;欢迎来到鸿蒙开发的奇妙世界&#xff01;如果你对编程感兴趣&#xff0c;却又不知道从何开始&#xff0c;那么今天的文章将是你最好的起点。我们将用短短5分钟的时间&#xff0c;带你快速入门鸿蒙开发&#xff0c;用 ArkTS 编写并运行你的第一个鸿蒙应用程序…

一篇文章速通Java开发Stream流(流水线开发附斗地主小游戏综合案例)

1-认识Sream流 是JDK8开始新增的一套API&#xff08;java.util.stream.*&#xff09;&#xff0c;可以用于操作集合或者数组的数据。 优势&#xff1a;Stream流大量的结合了Lambda语法风格来编程&#xff0c;功能强大&#xff0c;性能高效&#xff0c;代码简洁&#xff0c;可…

练习LabVIEW第三十七题

学习目标&#xff1a; 刚学了LabVIEW&#xff0c;在网上找了些题&#xff0c;练习一下LabVIEW&#xff0c;有不对不好不足的地方欢迎指正&#xff01; 第三十七题&#xff1a; 利用XY GRAPH 构成李萨如图形 开始编写&#xff1a; 前面板放一个XY图控件&#xff0c;程序框图…

ubuntu20.04 加固方案-检查是否设置登录超时

一、编辑/etc/profile配置文件 打开终端。 使用文本编辑器&#xff08;如vim&#xff09;编辑/etc/profile 文件。 vi /etc/profile 二、添加配置参数 在打开的配置文件中&#xff0c;如图位置添加如下参数&#xff1a; TMOUT1800 export TMOUT三、保存并退出 在vim编辑器…

算法:图的相关算法

图的相关算法 1. 图的遍历算法1.1 深度优先搜索1.2 广度优先搜索 2. 最小生成树求解算法普里姆(Prim)算法克鲁斯卡尔(Kruskal)算法 3. 拓扑排序4. 最短路径算法 1. 图的遍历算法 图的遍历是指从某个顶点出发&#xff0c;沿着某条搜索路径对图中的所有顶点进行访问且只访问次的…

智能语音机器人智能在哪里?AI人工智能电话机器人部署

随着科技的不断进步&#xff0c;人工智能已经成为了我们生活中不可或缺的一部分。AI人工智能机器人电话正是其中的一种形式&#xff0c;可以帮助企业或组织更好地实现电话营销的目标&#xff0c;那么智能语音机器人智能在哪里?我们来看看&#xff1a; 智能语音机器人&#xf…