机器学习——降维算法PCA和SVD(sklearn)

news2024/9/23 5:26:53

目录

一、基础认识

1. 介绍

2. 认识 “ 维度 ”

(1)数组和Series

(2)DataFrame 表

(3)图像

3. 降维思想

4. 降维步骤

二、降维算法(PCA)

1. PCA实现

(1)PCA参数

(2)PCA属性

(3)PCA接口

2. PCA中的SVD

3. 训练流程

4. 补充

三、学习中产生的疑问,及文心一言回答

1. PCA中的components_属性

一、基础认识

1. 介绍

        与特征选择类似,我们可以 用不同的特征提取技术来减少数据集的特征数量。特征选择和特征提取的区别在于,当我们用诸如 逆序选择之类的特征选择算法 时,数据集的原始特征 保持不变,而当我们用 特征提取 方法时,会将数据变换 或投影到 新特征空间。在降维的背景下,我们可以 把特征提取理解为 数据压缩的一种方法,其目的是 保持大部分的相关信息

        在实际应用中,特征提取 不仅可以优化存储空间 或 机器学习算法 的计算效率,而且还可以 通过减少 维数 提高预测性能,尤其是当我们 处理非正则化 模型的时候。

2. 认识 “ 维度 ”

(1)数组和Series

        对于 数组 和 Series来说,维度就是功能shape返回的结果,shape中 返回了 几个数字,就是几维。

(2)DataFrame 表

        数组中的 每一张表,都可以是 一个特征矩阵 或 一个 DataFrame,表中 行是 样本,列 是特征。针对每一张表,维度 指的是 样本的数量 或 特征的数量,一般无特别说明,指的都是特征的数量。除了索引之外,一个特征是一维,两个特征是二维,n 个特征是 n维。

(3)图像

        对图像 来说,维度就是图像中特征向量的数量。特征向量可以理解为是 坐标轴,一个特征向量定义一条直线,是 一维,两个相互垂直的特征向量定义一个 平面,即一个直角坐标系,就是二维,三个相互垂直的特征向量定义一个空间,即一个立体直角坐标系,就是三维。三个以上的特征向量相互垂直,定义人眼无法看见,也无法想象的高维空间。

        降维算法中的 “ 降维 ”,指的是 降低 特征矩阵中 特征的 数量。

3. 降维思想

        在降维过程中,我们会 减少特征的 数量,这意味着 删除数据,数据量 变少则 表示模型 可以获取的 信息会变少,模型的表现 可能会因此 受影响。同时,在高维数据中,必然有一些无效信息(比如噪音),或者一些重复信息(比如一些特征可能会线性相关)。

        我们希望能够找出一种办法来帮助我们衡量特征上所带的信息量,让我们在降维的过程中,能够即减少特征的数量,又保留大部分有效信息

        将那些带有重复信息的特征合并,并删除那些带无效信息的特征,逐浙创造出能够代表原特征矩阵大部分信息的,特征更少的,新特征矩阵。

        现在有一组简单的数据,有特征 x1 和 x2,三个样本数据的坐标点分别为(1,1),(2,2),(3,3)。我们 可以让 x1 和 x2 分别作为 两个特征向量,很轻松地用一个 二维平面来描述 这组数据。这组数据 现在 每个特征的 均值都为 2,特征的数据一模一样,因此 方差也都为1,数据的 方差总和 是 2。

        现在我们的 目标 是:只用 一个特征向量 来描述这组数据,即将 二维数据降为 一维数据,并且尽可能地 保留信息量,即 让数据的 总方差 尽量靠近 2。        


        据图所知,我们根据 信息含量的排序,取信息含量 最大的 一个特征,可以将 x2* 删除,同时也删除图中的 x2* 特征向量,剩下的 x1* 就代表了曾经需要 两个特征来代表的 三个样本点。 通过 旋转原有 特征向量组成的 坐标轴 来找到 新特征向量 和 新坐标平面,我们 将三个样本点 的信息 压缩到了 一条直线上,实现了 二维变一维,并且尽量保留原始数据的信息。—个成功的降维,就实现了。

4. 降维步骤

(1)输入原数据,结构为(m,n)。找出原本的n个特征向量构成的n维空间V。

(2)决定降维后的特征数量:k。

(3)通过某种变化,找出n个新的特征向量,以及它们构成的新n维空间V。

(4)找出原始数据在新特征空间V中的n个新特征向量上对应的值,即“将数据映射到新空间中”。

(5)选取前k个信息量最大的特征,删掉没有被选中的特征,成功将n维空间V降为k维。

        在步骤(3)当中,我们用来找出 n 个 新特征向量,让 数据 能够 被压缩到 少数特征 上并且 总信息量 不损失太多的技术 就是 矩阵分解,PCA 和 SVD 是 两种不同的 降维算法,但他们都 遵从上面的 过程来 实现降维,只是 两种算法中 矩阵分解的方法 不同,信息量的衡 量 指标不同。

二、降维算法(PCA)

        涉及sklearn库:decomposition

1. PCA实现

        class sklearn.decomposition.PCA (n_components=None, copy=True, whiten=False, svdl solver=auto',tol=0.0,iterated_power=‘auto’,random_state=None)

(1)PCA参数

(2)PCA属性

(3)PCA接口

2. PCA中的SVD

        对于任意(m, n)的输入矩阵 A,SVD 分解 结果为:

        分解结果中 U 为 左奇异矩阵S 为 奇异值矩阵,除 主对角线上的元素外全为 0,主对角线上的每个元素都称为 奇异值,V 为右 奇异矩阵

        右奇异矩阵V有着如下性质:

        k 就是 n_components,即 我们降维后希望得到的 维度。若 X 为(m,n)的 特征矩阵,V 就是结构为(n,n)的矩阵,取这个矩阵的前 k 行(进行切片),即将 V 转换为结构为(k,n)的矩阵,与原特征矩阵 X 相乘,即可得到降维后的 特征矩阵 Xdr。

        这是说,奇异值分解 可以 不计算 协方差矩阵 等 结构复杂计算冗长的 矩阵,就直接 求出 新特征空间 和 降维后 的 特征矩阵。所以 SVD 在矩阵分解中的 过程比 PCA 简单快速。

3. 训练流程

        通过 SVD 和 PCA 的合作,sklearn 实现了一种计算更快 更简单,但效果却很好的 “ 合作降维 ”。

4. 补充

  (1)在新的特征矩阵生成之前,我们无法知晓 PCA 都建立了怎样的 新特征向量,新特征矩阵生成之后也 不具有可读性,我们 无法判断 新特征矩阵的特征 是 从原数据中的 什么特征组合 而来,新特征带有 原始数据的信息,却 已经不是 原数据上代表着 的含义了。以 PCA 为代表的 降维算法因此是 特征创造 (feature creation,或 feature construction) 的一种。

  (2)inverse_transform 并没有实现数据的 完全逆转。这是因为,在降维的时候,部分信息 已经被舍奔了,Xdr 中往往不会包含原数据 100% 的信息,所以在 逆转的时候,即 便维度升高,原数据中 已经被舍弃的信息也不可能再回来了。所以,降维 不是完全 可逆的。( PCA 可以 对噪音进行过滤)

三、学习中产生的疑问,及文心一言回答

1. PCA中的components_属性

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

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

相关文章

免费视频批量横版转竖版

简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具,提供高效便捷的视频批量横转竖,主要功能: 导入与删除文件:轻松导入多个视频文件,删除不必要的文件。暂停与继续处理:随时暂停和继续处理。…

7-20FPGA调试日志

1. 在代码里面定义的ILA的变量名称与波形抓取界面的不一致 问题描述 ::: 2. 直接从其他的播放声音的平台放音乐没问题,但是从AU里面生成的2kHz的正弦波放不出声音 演示视频链接 好像和ILA的例化信号有关,例化ILA信号的驱动时钟信号频率没有内部的其他…

Redis-应用

目录 应用 缓存雪崩、击穿、穿透和解决办法? 布隆过滤器是怎么工作的? 缓存的数据一致性怎么保证 Redis和Mysql消息一致性 业务一致性要求高怎么办? 数据库与缓存的一致性问题 数据库和缓存的一致性如何保证 如何保证本地缓存和分布式缓存的一致? 如果在…

电脑永久性不小心删除了东西还可以恢复吗 电脑提示永久性删除文件怎么找回 怎么恢复电脑永久删除的数据

永久删除电脑数据的操作,对于很多常用电脑设备的用户来说,可以说时有发生!但是,因为这些情况大都发生在不经意间,所以每每让广大用户感觉到十分苦恼。永久删除也有后悔药,轻松找回电脑中误删的文件。恢复文…

Github 2024-07-20 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10TypeScript项目1Rust: 构建可靠高效软件的开源项目 创建周期:5064 天开发语言:Rust协议类型:OtherStar数量:92978 个Fork数量:1…

Win10环境将Docker部署到非系统盘

Win10环境将Docker部署到非系统盘 目录 Win10环境将Docker部署到非系统盘 一、Docker官网客户端Docker Hub下载 二、windows环境的安装 三、正确的迁移步骤 3.1、确保你的系统分区至少3G的剩余空间; 3.2、默认方式安装Docker hub; 3.3、打开Dock…

linux操作系统之线程

1.线程概念 线程是一个轻量级进程,每一个线程都属于一个进程 进程是操作系统资源分配的最小单位,而线程是CPU任务调度的最小单位 线程是一个任务执行的过程,包括创建,调度,消亡 创建:线程空间位于进程空间,进程中的线程,栈区独立,并共享进程中的数据区,文本区,堆区 调度:宏观…

微积分-微分应用2(平均值定理)

要得出平均值定理,我们首先需要以下结果。 罗尔定理 设函数 f f f 满足以下三个假设: f f f 在闭区间 [ a , b ] [a, b] [a,b] 上连续。 f f f 在开区间 ( a , b ) (a, b) (a,b) 上可导。 f ( a ) f ( b ) f(a) f(b) f(a)f(b) 则在开区间 ( a , b …

【手撕数据结构】拿捏双向链表

目录 链表介绍初始化链表销毁链表查找节点打印链表增加节点尾插头插在指定位置之后插入节点 删除节点尾删头删删除指定位置节点 链表判空 链表介绍 前面说到,链表的结构一共有八种:带头单向循环链表、带头单向非循环链表、带头双向循环链表、带头双向非…

绿色算力|暴雨服务器用芯片筑起“十四五”转型新篇章

面对全球气候变化、技术革新以及能源转型的新形势,发展低碳、高效的绿色算力不仅是顺应时代的要求,更是我国建设数字基础设施和展现节能减碳大国担当的重要命题,在此背景下也要求在提升算力规模和性能的同时,积极探索推动算力基础…

计算机网络参考模型与5G协议

目录 OSI七层参考模型OSI模型vsTCP/IP模型TCP/IP协议族的组成 OSI七层参考模型 分层功能应用层网络服务与最终用户的一个接口表示层数据的表示,安全,压缩会话层建立,管理,终止会话传输层定义传输数据的协议端口号,以及流控和差错校验网络层进行逻辑地址寻址,实现不同网路之间的…

泛型新理解

1.创建三个类,并写好对应关系 package com.jmj.gulimall.study;public class People { }package com.jmj.gulimall.study;public class Student extends People{ }package com.jmj.gulimall.study;public class Teacher extends People{ }2.解释一下这三个方法 pub…

麻省理工学院 - MIT - 线性代数学习笔记

学习视频地址 文章目录 1.01方程组的几何解释2.02矩阵消元3.03乘法和逆矩阵乘法逆 4.04矩阵A的LU分解5.05转置,置换,向量空间置换转置向量空间 6.06列空间和零空间7.07求解Ax0:主变量,特解 1.01方程组的几何解释 对于二元方程组&…

重生之我们在ES顶端相遇第6 章- Dynamic Mapping(动态映射)

思维导图 前言 在第5章,我们说完 ES 常用字段类型。但是,并未跟大家解释,为什么不设置 Mapping,写入的字符串,默认就可以全文搜索。例如 PUT /test4/_doc/1 {"name": "hello world" } GET /test…

Qt开发网络嗅探器01

引言 随着互联网的快速发展和普及,人们对网络性能、安全和管理的需求日益增 长。在复杂的网络环境中,了解和监控网络中的数据流量、安全事件和性能 问题变得至关重要。为了满足这些需求,网络嗅探器作为一种重要的工具被 广泛应用。 网络嗅探…

IoTDB 分段查询语句详解:GROUP BY + 时序语义

GROUP BY 查询子句的时序语义展开,IoTDB 支持的分段方式总结! 存储的数据通过分析来发挥价值,当一组被存储的数据通过查询得到分析后的结果时,这些数据才真正在数据库中实现了价值闭环。 在关系型数据库中,GROUP BY 子…

微信小程序数组绑定使用案例(二)

一、数组事件绑定&#xff0c;事件传递数据 1.wxml <text>姓名&#xff1a;{{name}} </text> <block wx:for"{{list}}"><button bind:tap"nameClick2" data-name"{{item}}">修改:{{item}}</button> </block&…

【BUG】已解决:xlrd.biffh.XLRDError: Excel xlsx file; not supported

已解决&#xff1a;xlrd.biffh.XLRDError: Excel xlsx file&#xff1b; not supported 目录 已解决&#xff1a;xlrd.biffh.XLRDError: Excel xlsx file&#xff1b; not supported 【常见模块错误】 错误原因 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(三)-架构模型和概念

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

Ubuntu 中默认的 root 用户密码

场景&#xff1a;想要切换root用户&#xff0c;发现得输入密码&#xff0c;以为是以前设置过然后一直尝试都是错误【认证失败】最后发现根本没设置过root用户&#xff0c;默认会随机生成root用户的密码&#x1f605; Ubuntu 中默认的 root 密码是随机的&#xff0c;即每次开机都…