sklearn中主成分分析PCA参数解释

news/2024/7/9 8:32:16 标签: sklearn, python, 机器学习

主成分分析一般用于数据降维,在应用主成分分析包scikit-learn时注意以下四点:

1、用pca.components_可以获取特征向量,且特征向量为行向量,例如W = pca.components_[0, :] (或W = pca.components_[0])为第一特征向量,而W = pca.components_[1, :]表示第二特征向量。

2、采用特征向量对点云进行处理,想要得到结果先要进行中心化再点乘即: p_t = np.dot(points - np.mean(points, axis=0), W.t)  这里W要转置

3、转换后点云(point_cloud_trans = pca.transform(point_cloud))的第几列数据就表示第几主成分点云,则point_cloud_trans[:, 0]表示在第一主成分上的投影点, point_cloud_trans[:, 1]表示在第二主成分的投影点,依次类推。

4. 对于H型钢横截面的提取,则需要获取其第二和第三主成分的点构成的截面。第一主成分为沿着H型钢方向,因为所有点在第一主成分轴上的投影点距离中心的距离平方和最大。

代码理解:

python"># 1、用pca.components_可以获取特征向量,且特征向量为行向量,例如W = pca.components_[0, :] 为第一特征向量
# 2、采用特征向量对点云进行处理,想要得到结果先要进行中心化再点乘 p_t = np.dot(points - np.mean(points, axis=0), W.t)  这里W要转置
# 3、转换后点云的第几列数据就表示第几主成分点云,例如point_cloud_trans = pca.transform(point_cloud),
# 则point_cloud_trans[:, 0]表示在第一主成分上的投影点, point_cloud_trans[:, 1]表示在第二主成分的投影点,依次类推
# 4. 对于H型钢横截面的提取,则需要获取其第二和第三主成分的点构成的截面,因为第一主成分为沿着H型钢方向

import numpy as np
from sklearn.decomposition import PCA
from sklearn import datasets

iris = datasets.load_iris()
data = iris.data
y = iris.target

# 执行PCA
pca = PCA()
x_new = pca.fit_transform(data)
print(x_new[:3]) # sklearn获取的值

print(np.dot(data-np.mean(data,axis=0),pca.components_.T)[:3]) # 利用获取的components_来计算的值
# 上述两个输出是等价的

输出:

python">[[-2.68420713e+00  3.26607315e-01 -2.15118370e-02  1.00615724e-03]
 [-2.71539062e+00 -1.69556848e-01 -2.03521425e-01  9.96024240e-02]
 [-2.88981954e+00 -1.37345610e-01  2.47092410e-02  1.93045428e-02]]
[[-2.68420713e+00  3.26607315e-01 -2.15118370e-02  1.00615724e-03]
 [-2.71539062e+00 -1.69556848e-01 -2.03521425e-01  9.96024240e-02]
 [-2.88981954e+00 -1.37345610e-01  2.47092410e-02  1.93045428e-02]]


http://www.niftyadmin.cn/n/4955045.html

相关文章

MATLAB | 七夕节用MATLAB画个玫瑰花束叭

Hey又是一年七夕节要到了,每年一次直男审美MATLAB绘图大赛开始hiahiahia,真的这些代码越写越不知道咋写,又不想每年把之前的代码翻出来再发一遍,于是今年又对我之前写的老代码进行了点优化组合,整了个花球变花束&#…

第 4 章 链表(2)(单链表面试题)

单链表面试题(新浪、百度、腾讯) 单链表的常见面试题有如下: 1.求单链表中有效节点的个数 /*** 单链表*/ public class SingleLinkedListDemo {public static void main(String[] args) {//进行测试//先创建节点HeroNode hero1 new HeroNode(1, "宋江", "及时…

OAuth2.0一 Spring Security OAuth2.0

这里主讲OAuth2.0 学习OAuth2前提: 掌握Spring Security Spring Security学习 一 OAuth2.0介绍 OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问他们…

在线HmacMd5加密工具--在线获取哈希值又称摘要

具体请前往:在线计算HMacMd5工具

汉诺塔问题 (递归实现)

题目: 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能…

桌游新篇:3.1 UserCase分析

距离上一次停止更新这个系列有将近9个月了。 工作这么久,学会了一件事,就是想清楚再动手。当然,后续工作已经渐渐展开了,而且当下属于天时地利人和(既有当前MR设备带来的硬件buff,又有大语言模型&#xff…

js中的正则表达式(一)

目录 1.什么是正则表达式 2.正则表达式在JavaScript中的使用场景: 3.正则表达式的语法: 1.什么是正则表达式 正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象通常用来查找、替换那些符…

springboot 项目日志配置文件详解

spring boot 项目指定 日志配置文件 在Spring Boot项目中,可以通过在application.properties或application.yml文件中指定日志配置文件来配置日志。 1. 使用application.properties文件: 在application.properties中,您可以使用以下属性来…