网站创意文案怎么做/推广引流渠道
以鸢尾花数据集为例,实现PLS-DA降维,画出降维后数据的散点图并求其方差贡献率。
效果图
完整代码
# 导入所需库
import numpy as np
from sklearn.cross_decomposition import PLSRegression
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt# 载入数据
iris = load_iris()
X = iris.data
y = iris.target
print(X.shape)
print(y.shape)
# 标准化数据
X = StandardScaler().fit_transform(X)# 定义PLS-DA对象并拟合数据
plsda = PLSRegression(n_components=2)
plsda.fit(X, y)# 得到PLS-DA降维后的数据
X_plsda = plsda.transform(X)
print(X_plsda.shape)
# 绘制散点图
colors = ['blue', 'red', 'green']
labels = ['Setosa', 'Versicolor', 'Virginica']
for i in range(len(colors)):x = X_plsda[:, 0][y == i]y_plot = X_plsda[:, 1][y == i]plt.scatter(x, y_plot, c=colors[i], label=labels[i])# 输出成分贡献率
# 计算PLS-DA成分贡献率# 计算PLSDA的旋转系数
plsda_components = plsda.x_rotations_
print(plsda_components)
plsda_scores = X_plsda
# 计算PLSDA成分解释的方差比例
variance_explained = np.var(plsda_scores, axis=0) # 计算在PLSDA成分上解释的方差
print("variance_explained shape:", variance_explained.shape)
print("variance_explained:", variance_explained)
total_variance = np.var(X, axis=0) # 计算在原始数据上总方差的和
print("total_variance shape:", total_variance.shape)
print("total_variance:", total_variance)
plsda_variance_ratio = variance_explained / total_variance.sum()
print("total_variance.sum():", total_variance.sum()) # 计算PLSDA成分解释的方差比例
# print(plsda_variance_ratio)
# 输出成分贡献率
for i, ratio in enumerate(plsda_variance_ratio):print(f'PLS-DA Component {i + 1}: {ratio * 100:.2f}%')plt.xlabel('LV1 ({} %)'.format(round(plsda_variance_ratio[0] * 100, 2)))
plt.ylabel('LV2 ({} %)'.format(round(plsda_variance_ratio[1] * 100, 2)))plt.legend()
plt.show()
代码解析
主要解析求成分贡献率的过程:
plsda_components = plsda.x_rotations_
plsda_scores = X_plsda
variance_explained = np.var(plsda_scores, axis=0)
total_variance = np.var(X, axis=0)
plsda_variance_ratio = variance_explained / total_variance.sum()
plsda.x_rotations_
:plsda
是进行PLS-DA的对象,plsda.x_rotations_
是PLS-DA模型中X变量(即自变量)的旋转矩阵,表示如何将原始数据X映射到新的降维空间中。将该旋转矩阵存储到变量plsda_components
中。对于此数据集,得到的plsda_components是4x2的矩阵。
X_plsda
:这是使用PLS-DA降维后的X变量数据集,是150×2的矩阵。
variance_explained = np.var(plsda_scores, axis=0)
:计算每个主成分(即降维后的新变量)在降维后数据中的方差解释比例,存储到变量variance_explained
中。这里使用np.var()
函数计算方差。由于本次代码是使用PLS-DA将数据降到2维,故得到的variance_explained
是一个包含2个元素的一维数组[2.89312513 0.15504989]
,表示每个特征的方差之和。
total_variance = np.var(X, axis=0)
:计算原始数据X中每个变量的总方差,存储到变量total_variance
中。原始数据是150×4的矩阵,故total_variance
是一个包含4个元素的一维数组,[1. 1. 1. 1.]。
plsda_variance_ratio = variance_explained / total_variance.sum()
:计算每个主成分在总方差中的方差解释比例,即PLS-DA的方差解释比例。将结果存储到变量plsda_variance_ratio
中。total_variance.sum()
是求总方差的和,即每个变量的方差之和。这里total_variance.sum()
等于3.9999999999999987而不是4,是由于浮点数的存储方式,在某些情况下,计算机无法精确表示某些小数。所以此计算步骤为[2.89312513/3.9999999999999987, 0.15504989/3.9999999999999987]得到[0.72328128 0.03876247],也就是每个主成分在总方差中的方差解释比例。
相关文章:

使用python求PLS-DA的方差贡献率
以鸢尾花数据集为例,实现PLS-DA降维,画出降维后数据的散点图并求其方差贡献率。 效果图 完整代码 # 导入所需库 import numpy as np from sklearn.cross_decomposition import PLSRegression from sklearn.datasets import load_iris from sklearn.pre…...

前端面试题--JavaScript篇
一、JavaScript中的数据类型JavaScript中共有八种数据类型:Number、String、Boolean、Object、Null、Undefined、null、Symbol、BigInt 其中Symbol和BigInt是ES6新增的数据类型Symbol代表独一无二且不可改变的数据类型,主要为了解决可能出现的全局变量冲…...

【批处理脚本】-3.5-pause暂停命令详解
"><--点击返回「批处理BAT从入门到精通」总目录--> 共3页精讲(列举了所有pause的用法,图文并茂,通俗易懂) 在从事“嵌入式软件开发”和“Autosar工具开发软件”过程中,经常会在其集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,…...

软件测试11
一 Linux命令的基本格式 格式组成:命令主体 -命令选项 命令参数 常见命令形式: (1)命令主体 (2)命令主体 -命令选项 (3)命令主体 参数 (4)命令主体 -命令选项…...

2023 面试题js、es6篇
什么是闭包? 闭包的定义 闭包是指能够访问另一个函数作用域中的变量的一个函数。 在js中,只有函数内部的子函数才能访问局部变量, 所以闭包可以理解成 “定义在一个函数内部的函数”。 应用场景 将内部的函数返到外部去,让外部…...

(六十六)设计索引的时候,我们一般要考虑哪些因素呢?(下)
今天我们最后来讲一下设计索引的时候,我们一般要考虑哪些因素。 另外还讲了字段基数的问题以及前缀索引的问题, 那么今天接着来讲剩下的一些索引设计的原则。 首先假设你设计好了一个索引,非常棒,接着你在SQL里这么写ÿ…...

python程序设计基础 实验四
⭐python实验专栏,欢迎订阅与关注! ★观前提示:本篇内容为python程序设计实验,代码内容经测试没有问题,但是可能会不符合每个人实验的要求,因此以下内容建议仅做思路参考。 一、实验目的 (1&am…...

ASP.NET CORE API 使用Orleans
快速使用Monimal API 快速集成Orleans 微软官网地址如下:https://learn.microsoft.com/zh-cn/dotnet/orleans/quickstarts/build-your-first-orleans-app?sourcerecommendations&tabsvisual-studio当然它的存储grain存储采用的是内存级别存储,我缓存…...

《论文阅读》软化标签(将one-hot编码转变为grayscale标签)
《论文阅读》The Emotion is Not One-hot Encoding: Learning with Grayscale Label for Emotion Recognition in Conversation 前言简介相关知识grayscale label模型方法CategoryWord-EmbeddingSelfSelf-AdjustFuture-Self损失实验结果前言 你是否也对于理解论文存在困惑? …...

keras图片数字识别入门AI机器学习
通过使用mnist(AI界的helloworld)手写数字模型训练集,了解下AI工作的基本流程。 本例子,要基于mnist数据集(该数据集包含了【0-9】的模型训练数据集和测试数据集)来完成一个手写数字识别的小demo。 mnist…...

使用qt编写一个程序,伪造一个ip访问一个网站。
你好,这是Bing。😊 根据网络搜索结果,使用qt编写一个程序,伪造一个ip访问一个网站的方法可能有以下几种: - 使用X-Forwarded-For请求头来伪造客户端的真实ip地址。这种方法需要在发送请求时添加X-Forwarded-For: 伪造…...

探访人工智能领跑者:纷享销客携手30+TOP高科技企业走进旷视科技
拥有全球规模领先的计算机视觉研究院; 揽获28项世界顶级AI竞赛冠军; 世界级人工智能公司; 没错,它就是人工智能行业的务实者和领跑者,旷视科技。 3月3日,北京软件和信息服务业协会联合纷享销客,…...

UTC、TimeZone、TimeStamp
UTC :Universal Time Coordinated,世界协调时,又称世界标准时间。与UTC time对应的是各个时区的local time,东N区的时间比UTC时间早N个小时,因此UTC time N小时 即为东N区的本地时间;而西N区时间比UTC时间…...

探究SMC局部代码加密技术以及在CTF中的运用
前言 近些日子在很多线上比赛中都遇到了smc文件加密技术,比较出名的有Hgame杭电的比赛,于是我准备实现一下这项技术,但是在网上看了很多文章,发现没有讲的特别详细的,或者是无法根据他们的方法进行实现这项技术,因此本篇文章就是…...

免费集装箱箱号识别API,人工智能企业CIMCAI集装箱识别检测人工智能平台全球4千企业用户,支持API集成二次开发人工智能企业
免费集装箱箱号识别API,人工智能企业CIMCAI集装箱识别检测人工智能平台全球4千企业用户,支持API集成二次开发。箱信息识别及铅封号识别功能免费,顶尖AI集装箱识别率99.98%,全球No.1集装箱人工智能企业CIMCAI打造。中国上海人工智能…...

pdf多页合并为一页方法总结,你觉得哪个最好?
PDF格式的文件在现代办公中是不可或缺的,许多人在工作中需要频繁处理PDF文档。然而,当我们需要阅读多个PDF文件时,不断切换不同的文件并一个一个地打开查阅会非常麻烦。为了提高阅读效率,人们一般会将pdf多页合并为一页。那么&…...

每日一读【基金/股票投资的常识和纪律】
个人投资的几点总结,我时常拿来阅读,警示自己: *基于常识,独立思考。 *投资以年为单位,5年一周期。 *下跌时的信心比金子还贵,永远要记住:风险是涨上去的,机会…...

阶段二12_面向对象高级_继承3
知识点内容: 抽象类 模板设计模式 final关键字 一.抽象类 (1)抽象类概述 抽象方法:将共性的行为(方法)抽取到父类之后,发现该方法的实现逻辑 无法在父类中给出具体明确,该方法就可以定义为抽象方法。 抽…...

C++ STL:string类的概述及常用接口说明
目录 一. 什么是STL 二. string类的概述 三. string类的常用接口说明 3.1 字符串对象创建相关接口(构造函数) 3.2 字符串长度和容量相关接口 3.3 字符访问相关接口函数 3.4 字符串删改相关接口函数 3.5 字符查找和子串相关接口函数 3.6 迭代器相…...

java Math类 和 System类 详解(通俗易懂)
Math类介绍Math类常用方法及演示System类简介System类常用方法及演示一、前言本节内容是我们《API-常用类》专题的第四小节了。本节内容主要讲Math类和System类, 内容包括Math类介绍、Math类常用方法、System类介绍,System类常用方法。该小节内容基本不涉…...

软件回归测试是什么?
一、软件回归测试是什么? 软件回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其…...

TwinCAT3中ModbusTCP Server和C# Client连接
目录 一、硬件环境 1、设置PLC的ip地址 2、ModbusTCP软件安装 3、PLC操作系统防火墙设置 4、网络助手连接PLC 二、创建PLC工程 1、创建寄存器读写变量 2、添加ModbusTCP授权 3、激活和运行工程 三、ModbusTCP数据协议说明 1、写单个寄存器 2、读寄存器 (1&…...

【上传项目代码到Git详细步骤】
1.下载安装Git到电脑上(这里我之前已经安装好了,就不细说了)2.进入控制台安装好后右键点击桌面空白部分会多出两个菜单选项,点击第二个Git Bash Here(点击第一个你会爆炸)会弹出一个git控制台,如…...

C++回顾(十五)—— 类模板
15.1 为什么要有类模板 类模板用于实现类所需数据的类型参数化类模板在表示如数组、表、图等数据结构显得特别重要,这些数据结构的表示和算法不受所包含的元素类型的影响 15.2 单个类模板语法 注意:类模板的创建对象一定要显示调用(指明类型…...

【JavaEE初阶】第四节.文件操作 和 IO (下篇)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言三、文件内容的操作 3.1 读文件 3.1.1 使用字节流读文件 3.2 写文件 3.2.1 使用字节流写文件 …...

华为OD机试用Python实现 -【分解质因数】 2023Q1A
华为OD机试题 本篇题目:分解质因数题目示例 1输入输出示例 2输入输出Code代码编写思路最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南...

博客项目
文章目录1. 创建项目2. 数据库设计3. 前置任务3.1 拦截器3.2 统一数据格式3.3 创建一个 Constant3.4 统一异常处理3.5 密码加密4. 功能实现4.1 登录功能4.2 注册功能4.3 博客列表页 (功能实现)4.3.1 左侧框4.3.2 右侧框 (分页功能 页面显示)4.4 博客详情…...

C++基础了解-20-C++类 对象
C 类 & 对象 一、C 类 & 对象 C 在 C 语言的基础上增加了面向对象编程,C 支持面向对象程序设计。类是 C 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法…...

多态与虚(函数)表
前言续接上回(继承),我们了解了继承是如何通过虚基表,来解决派生类和父类有相同的成员变量的情况,但是类和对象中可不只有成员变量,如果成员函数也有同名,更或者如果我们想在访问不同情况&#…...

云舟案例︱视频孪生技术赋能城市安全综合管理场景,提升城市数智化水平
随着城市化发展进程的加快,人口不断膨胀,社会安全隐患等问题日益突出,成为困扰城市建设与管理的重要难题。针对各类社会治安突出问题,城市管理部门积极推进城市信息化建设,视频监控等各类信息化采集手段为城市数字化管…...