PCA降维

定义

主成分分析(PCA)是常用的线性数据降维技术,采用一种数学降维的方法,在损失很少信息的前提下,找出几个综合变量作为主成分,来代替原来众多的变量,使这些主成分能够尽可能地代表原始数据的信息,其中每个主成分都是原始变量的线性组合,而且各个主成分之间不相关(即线性无关)

基本原理

找出第一个主成分的方向,也就是数据 方差最大 的方向。
找出第二个主成分的方向,也就是数据 方差次大 的方向,并且该方向与第一个主成分方向 正交(orthogonal 如果是二维空间就叫垂直)。
通过这种方式计算出所有的主成分方向。
通过数据集的协方差矩阵及其特征值分析,我们就可以得到这些主成分的值。
一旦得到了协方差矩阵的特征值和特征向量,我们就可以保留最大的 N 个特征。这些特征向量也给出了 N 个最重要特征的真实结构,我们就可以通过将数据乘上这 N 个特征向量 从而将它转换到新的空间上

简单代码实例

import numpy as np# 生成示例数据
np.random.seed(0)
data = np.random.rand(5, 3)  # 5个样本,每个样本有3个特征# 计算均值
mean = np.mean(data, axis=0)# 中心化数据(减去均值)
centered_data = data - mean# 计算协方差矩阵
cov_matrix = np.cov(centered_data, rowvar=False)# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)# 对特征值排序
sorted_indices = np.argsort(eigenvalues)[::-1]
eigenvalues = eigenvalues[sorted_indices]
eigenvectors = eigenvectors[:, sorted_indices]# 选择要保留的主成分数量
num_components = 2# 取前num_components个特征向量
selected_eigenvectors = eigenvectors[:, :num_components]# 使用特征向量变换数据
reduced_data = np.dot(centered_data, selected_eigenvectors)# reduced_data现在包含了降维后的数据,每行是一个样本,每列是一个主成分print("原始数据:\n", data)
print("降维后的数据:\n", reduced_data)

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

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

相关文章

Android 13.0 系统开机屏幕设置默认横屏显示

1.概述 在13.0的系统产品开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从 两部分来实现,一部分是系统开机动画横屏显示,另一部分是系统屏幕显示横屏显示,从这两方面就可以做到开机默认横屏显示了 2.系统开机设置默认横屏显…

【C++笔记】模板进阶

【C笔记】模板进阶 一、非类型模板参数二、类模板的特化三、模板的分离编译 一、非类型模板参数 我们之前学过的模板虽然能很好地帮我们实现泛型编程&#xff0c;比如我们可以让一个栈存储int类型的数据&#xff0c;一个栈存储double类型的数据&#xff1a; template <cla…

OpenCV14-图像平滑:线性滤波和非线性滤波

OpenCV14-图像平滑&#xff1a;线性滤波和非线性滤波 1.图像滤波2.线性滤波2.1均值滤波2.2方框滤波2.3高斯滤波2.4可分离滤波 3.非线性滤波3.1中值滤波3.2双边滤波 1.图像滤波 图像滤波是指去除图像中不重要的内容&#xff0c;而使关心的内容表现得更加清晰的方法&#xff0c;…

【MultiOTP】在Linux上使用MultiOTP进行SSH登录

在前面的文章中【FreeRADIUS】使用FreeRADIUS进行SSH身份验证已经了解过如何通过Radius去来实现SSH和SUDO的登录&#xff0c;在接下来的文章中只是将密码从【LDAP PASSWORD Googlt OTP】改成了【MultiOTP】生成的passcode&#xff0c;不在需要密码&#xff0c;只需要OTP去登录…

大鼠药代动力学(PK参数/ADME)+毒性 实验结果分析

在真实做实验的时候&#xff0c;出现了下面真实测试的一些参数&#xff0c;一起学习一下&#xff1a; 大鼠药代动力学&#xff1a; 为了进一步了解化合物 96 的药代动力学性质&#xff0c;我们选择化合物 500 进行 SD大鼠药代动力学评估。 经静脉注射和口服给药后观察大鼠血药…

广东广西大量工地建筑支模

近年来&#xff0c;广东广西地区的建筑工地发展迅猛&#xff0c;为满足日益增长的建筑需求&#xff0c;大量工地都需要使用支模模板。支模模板是建筑施工中不可或缺的重要工具&#xff0c;用于搭建楼层、梁柱等结构的模板系统。在广东广西&#xff0c;有许多专业的支模模板厂家…

TCP/IP(二十一)TCP 实战抓包分析(五)TCP 第三次握手 ACK 丢包

一 实验三&#xff1a;TCP 第三次握手 ACK 丢包 第三次握手丢失了,会发生什么? 注意: ACK 报文是不会有重传的,当 ACK 丢失了,就由对方重传对应的报文 ① 实验环境 ② 模拟方式 1、 服务端配置防火墙iptables -t filter -I INPUT -s 172.25.2.157 -p tcp --tcp-flag ACK…

基于Springboot服装商品管理系统免费分享

基于Springboot服装商品管理系统 作者: 公众号(擎云毕业设计指南) 更多毕设项目请关注公众号&#xff0c;获取更多项目资源。如需部署请联系作者 注&#xff1a;禁止使用作者开源项目进行二次售卖&#xff0c;发现必究&#xff01;&#xff01;&#xff01; 运行环境&…

Flink之Watermark水印、水位线

Watermark水印、水位线 水位线概述水印本质生成WatermarkWatermark策略WatermarkStrategy工具类使用Watermark策略 内置Watermark生成器单调递增时间戳分配器固定延迟的时间戳分配器 自定义WatermarkGenerator周期性Watermark生成器标记Watermark生成器Watermark策略与Kafka连接…

新版pycharm(2023.2.2)修改字体大小

下载了2023新版pycharm&#xff0c;想修改字体&#xff0c;发现找不到之前的setting入口&#xff0c;网上搜索也都是file-setting-editor这些&#xff0c;自己找了找&#xff0c;记录下 2023版pycharm的修改字体大小在file-Manage IDE Settings-Setting Sync… 里面&#xff0…

一篇文章带你弄懂编译和链接

一篇文章带你弄懂编译和链接 文章目录 一篇文章带你弄懂编译和链接一、环境二、翻译环境1.编译①预处理②编译③汇编 2.链接 三、运行环境 一、环境 翻译环境和运行环境 翻译环境&#xff1a;源代码被转换成可执行的机器指令。 运行环境&#xff1a;用于实际执行代码。 二、…

设计模式之抽象工厂模式

前言 工厂模式一般指的是简单工厂模式、工厂方法模式、抽象工厂模式&#xff0c;这是三种工厂模式的最后一篇&#xff0c;其他两种的文章链接如下&#xff1a; 设计模式之简单工厂模式-CSDN博客 设计模式之工厂方法模式-CSDN博客 建议三种模式放在一起对比学习&#xff0c;…

亚马逊测评关于IP和DNS的问题

最近不少人询问了关于IP和DNS的问题&#xff0c;在此进行一些科普。 当客户端试图访问一个网站时&#xff0c;首先会向其所在的ISP的DNS服务器进行查询。如果ISP的DNS服务器没有相关缓存&#xff0c;则会向上级DNS服务器进行查询。 一些诸如CDN之类的服务&#xff0c;可能会为…

云安全—责任共担

0x00 前言 云安全的职责范围实际上一直遵循的是&#xff0c;谁提供谁负责&#xff0c;如果交付给云消费者的时候&#xff0c;交付者使用过程中就要自行负责&#xff0c;也就是我们经常遇到的配置不当等问题&#xff0c;在三层服务模式中&#xff0c;责任互相嵌套&#xff0c;最…

IT运维管理系统在国有大型企业网络中的应用和可以解决的问题

随着国有大型企业业务的快速发展&#xff0c;网络运维管理面临着诸多挑战。本文将从问题概述、解决方案、监控易优势、实际案例和总结等方面阐述IT运维管理系统在国有大型企业网络中的应用和可以解决的问题。​IT运维管理系统&#xff1a;国有大型企业网络的变革者与解决之道 一…

MMKV源码解读与理解

概述 通过 mmap 技术实现的高性能通用 key-value 组件。同时选用 protobuf 协议&#xff0c;进一步压缩数据存储。 标准 protobuf 不提供增量更新的能力&#xff0c;每次写入都必须全量写入。考虑到主要使用场景是频繁地进行写入更新&#xff0c;我们需要有增量更新的能力&am…

批量修改视频尺寸:简单易用的视频剪辑软件教程

如果你需要批量修改视频尺寸&#xff0c;同时保持高质量的画质&#xff0c;那么“固乔剪辑助手”这款软件是你的不二之选。下面就是如何使用这款软件进行批量修改视频尺寸的详细步骤。 1. 首先&#xff0c;你需要在浏览器中进入“固乔科技”的官网&#xff0c;然后下载并安装“…

大数据 DataX 数据同步数据分析入门

目录 一、DataX 概览 1.1 DataX 是什么 1.2 DataX 3.0 概览 设计理念 当前使用现状 二、DataX 详解 2.1 DataX 3.0 框架设计 2.2 DataX 3.0 插件体系 2.3 DataX 3.0 核心架构 2.3.1 核心模块介绍 2.3.2 DataX 调度流程 2.4 DataX 3.0 的六大核心优势 2.4.1 可靠的…

Linux考试复习整理

文章目录 Linux考试整理一.选择题1.用户的密码现象放置在哪个文件夹&#xff1f;2.删除文件或目录的命令是&#xff1f;3.显示一个文件最后几行的命令是&#xff1f;4.删除一个用户并同时删除用户的主目录5.Linux配置文件一般放在什么目录&#xff1f;6.某文件的组外成员的权限…

MongoDB常用脚本汇总

概述 本文汇总记录日常工作中常用的MongoDB查询脚本。 实战 新增 新增集合&#xff1a; db.getSiblingDB("corpus").createCollection(message);删除 删除一条数据&#xff1a; db.getSiblingDB("cx_user").userAccount.deleteOne({_id: ObjectId(6…