无监督学习之主成分分析-半导体制造高维数据如何降维

news2024/12/24 8:09:02

在这里插入图片描述
数据降维不只存在于半导体数据中,它是存在于各行各业的,我们要分析的数据维数较多的时候全部输入维数较大这时就要采取降维的方法综合出主要的几列用于我们的分析。
在这里插入图片描述
在这里插入图片描述
PCA的哲学理念是要抓住问题的主要矛盾进行分析,是将多指标转化为少数几个综合指标进行分析。
在这里插入图片描述
在这里插入图片描述
以二维空间为例的话 n 个样本点无论是沿着X1轴方向或者X2轴方向都有很大的离散型,因为我们看到此时二维空间中的这个形状是椭圆形的,如果只选取X1和X2中的任何一个那么包含在原始数据中的信息都会有较大的损失,如果将X1轴和X2轴先平移,再同时按逆时针方向旋转一定角度,便会得到新坐标轴。
在这里插入图片描述
得到的新的坐标轴F1和F2称为原始变量X1和X2的综合变量,旋转变换后n个样品在F1轴方向上的离散程度最大,即F1的方差最大,变量F1代表了原始数据的绝大部分信息,在研究某些问题时,即使不考虑F2也无损大局。
在这里插入图片描述
以二维模型为例,经过变换后的F1和F2的方向如图所示,同时我们可以扩展到多维模型,假如X是P维模型为例,我们会依次找出第一主成分和第二主成分等,但是找到的主成分的数量必然是远远小于P的。
在这里插入图片描述
求解之后我们可以得到各特征根对应的特征向量,其中最大特征根的特征向量对应第一主成分的的系数向量;第二大特征根的特征向量是第二大主成分的系数向量,虽然我们知道最后要使用的主成分的数量是远远小于初始的数量,那么最终应该选择几个主成分就是由方差累计贡献率决定,我们要求的方差累计贡献率越高,最终需要的主成分个数相应也越多。

'''step1 调用包'''
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
'''step2 导入数据'''
data=pd.DataFrame(pd.read_excel('data_secom.xlsx'))
'''step3 数据预处理'''
# 查看各列缺失情况
data.isnull().sum()
#缺失值填充
datanew = data.fillna('0')
#数据标准化,消除特征量纲的影响
#将属性缩放到一个指定范围,即(x-min)/(max-min)
scaler = MinMaxScaler()
scale_data = pd.DataFrame(scaler.fit_transform(datanew))
'''step4 PCA降维'''
#选择保留85%以上的信息时,自动保留主成分
pca = PCA(0.85)
data_pca = pca.fit_transform(scale_data) #data_pca就是降维后的数据
data_pca_new = pd.DataFrame(data_pca)
print("保留主成分个数为:",pca.n_components_) #显示保留主成分个数
#选取前两主成分作图
plt.scatter(data_pca[:,0], data_pca[:,1])
plt.xlabel('PC 1')
plt.ylabel('PC 2')
plt.show()

一、调用必要的包

'''step1 调用包'''
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

此时需要注意的是看PCA是从哪调用的
二、导入数据

data=pd.DataFrame(pd.read_excel('data_secom.xlsx'))

在这里插入图片描述
此时我们可以看到我们读入的数据的行数和列数是非常大的。
三、数据预处理

'''step3 数据预处理'''
# 查看各列缺失情况
data.isnull().sum()
#缺失值填充
datanew = data.fillna('0')
#数据标准化,消除特征量纲的影响
#将属性缩放到一个指定范围,即(x-min)/(max-min)
scaler = MinMaxScaler()
scale_data = pd.DataFrame(scaler.fit_transform(datanew))

在这里插入图片描述
查看各列的缺失值情况后用 0 进行填充,同时再将属性进行标准化从而缩放到一个指定范围。
在这里插入图片描述
标准化后的数据如图所示
四、PCA降维

'''step4 PCA降维'''
#选择保留85%以上的信息时,自动保留主成分
pca = PCA(0.85)
data_pca = pca.fit_transform(scale_data) #data_pca就是降维后的数据
data_pca_new = pd.DataFrame(data_pca)
print("保留主成分个数为:",pca.n_components_) #显示保留主成分个数

在这里插入图片描述
在这里插入图片描述
这里我们可以看到选取不同的方差贡献率之后,需要保留的主成分个数是不同的,
这段代码使用PCA(Principal Component Analysis)对数据进行了降维处理。
具体步骤:

  1. 创建PCA对象pca,设置降维比例为0.95。
  2. 调用PCA对象的fit_transform()方法,输入归一化后的数据scale_data。
  3. fit_transform()先拟合数据,找到主成分方向,然后进行降维转换。
  4. 其中参数0.95表示保留95%的信息量进行降维。
  5. 返回的data_pca就是降维处理后的结果数据。
  6. 将其转换为DataFrame格式,存储在data_pca_new中。
    这样就可以利用PCA对高维数据进行预处理,去除冗余信息,降低维度,减少特征间相关性。
    降维比例需要根据实际情况来设置,一般0.9-0.99之间。保留越多信息,降维效果越小。
    PCA降维是机器学习中常用的一种维数约简方法,可以有效简化模型,防止过拟合。在这里插入图片描述
    大家此时可以看到降维后的数据现在是有118列,行数是没有变化的。
#选取前两主成分作图
plt.scatter(data_pca[:,0], data_pca[:,1])
plt.xlabel('PC 1')
plt.ylabel('PC 2')
plt.show()

最后再选取前两个主成分作图进行可视化分析。
在这里插入图片描述

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

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

相关文章

13 docker使用问题

目录 docker模块分布: ①:安装"abseil"C库 ②:安装CMake​编辑 ③:grpc安装 ④:protobuf安装​编辑 ⑤:qt界面显示 ⑥:dockerfile编写​编辑 ⑦:执行docker脚本 …

(隐性)类型转换和算数转换

类型转换(char,short) 几个char 类型或者short 类型的数相加,会把他们提升为整形来相加 整型提升的意义: 表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度 一般就是int的字节长…

开学触控笔买哪个牌子好?ipad可以用的电容笔推荐

随着开学时间的临近,各大学院的学生们也都陆陆续续为走进校园而做准备了。那么开学自然需要买一些必要的数码电子产品,比如搭配iPad使用的电容笔。我们究竟要不要买苹果原装电容笔?事实上,如果只是为了写字记录东西的话&#xff0…

python爬虫数据解析xpath、jsonpath,bs4

数据的解析 解析数据的方式大概有三种 xpathJsonPathBeautifulSoup xpath 安装xpath插件 打开谷歌浏览器扩展程序,打开开发者模式,拖入插件,重启浏览器,ctrlshiftx,打开插件页面 安装lxml库 安装在python环境中的Scri…

windows11下配置vscode中c/c++环境

本文默认已经下载且安装好vscode,主要是解决环境变量配置以及编译task、launch文件的问题。 自己尝试过许多博客,最后还是通过这种方法配置成功了。 Linux(ubuntu 20.04)配置vscode可以直接跳转到配置task、launch文件,不需要下载mingw与配…

C#_字符串

String类型 字符串是信息最重要载体,相对于图像、语音、视频更易读易处理;C#字符串具有 不可变 特征, 从使每一次修改都要需要申请内存空间,并且需要复制源字符串到新的内存空间,还要需要销毁原有空间。 优势&#x…

前端实现文件预览功能

前端实现文件预览功能 ❝ 需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建议以下的预览文件标签可以在外层包裹一层弹窗。 ❞ 图片预览 iframe标签…

详细安装配置django

安装配置使用Django。 1,下载安装 django pip install django 2.创建设置项目 先进入要放置项目的文件夹下 2.1, 创建项目 django-admin startproject Api_project 2.2, 创建app命令 cd Api_project dir看一下是否有 manage.py 文件…

ORB-SLAM2第五节---局部地图跟踪(阶段二)

保证三种跟踪方式更加准确 1.局部关键帧 当前帧F的局部关键帧包括: 能够观测到当前帧F中地图点的共视关键帧KF1、KF2,称为一级共视关键帧。一级共视关键帧的共视关键帧(前10个共视程度最高的关键帧),比如图中的KF1的…

取证--实操

2022年美亚杯个人赛 运用软件DB Browser for SQLite (一款用于查看SQLlite数据库文件的浏览器工具) 火眼,盘古石手机取证系统等 案件详情 于2022年10月,有市民因接获伪冒快递公司的电邮,不慎地于匪徒架设的假网站提…

分类预测 | MATLAB实现CNN-BiGRU-Attention多输入分类预测

分类预测 | MATLAB实现CNN-BiGRU-Attention多输入单输出分类预测 目录 分类预测 | MATLAB实现CNN-BiGRU-Attention多输入单输出分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现CNN-BiGRU-Attention多特征分类预测,卷积双向门控循环…

qemu简单使用

参考: 记一次全设备通杀未授权RCE的挖掘经历 claude1 安装使用 附件下载 下载后拖到虚拟机 解压 使用root用户 运行.sh脚本即可 运行脚本解读 #!/bin/bashsudo qemu-system-mipsel \-cpu 74Kf \-M malta \-kernel vmlinux-3.2.0-4-4kc-malta \ -hda debian…

Rabbitmq延迟消息

目录 一、延迟消息1.基于死信实现延迟消息1.1 消息的TTL(Time To Live)1.2 死信交换机 Dead Letter Exchanges1.3 代码实现 2.基于延迟插件实现延迟消息2.1 插件安装2.2 代码实现 3.基于延迟插件封装消息 一、延迟消息 延迟消息有两种实现方案&#xff…

PyQt5下拉列表实现及信号与槽的连接

目录 1、常用方法 2、常用信号 3、实操 1、常用方法 QComboBox() 创建一个下拉框对象addItems 可以使用列表进行多个下拉框内容添加, 单个添加用addItemcurrentIndexChanged 是用来获取当前选择下拉框的索引, 这也是这个"信号"槽函数需要 有个索引传参, 这样就便…

优化查询性能:UNION与UNION ALL的区别

作用 在SQL查询中,当我们需要合并多个查询结果集时,我们通常会使用UNION和UNION ALL操作符,同时,如果你写的or语句不走索引,可以考虑使用UNION、UNION ALL优化。 在本篇博客中,我们将探讨UNION和UNION AL…

Lnux系统usb摄像头测试程序(一)

这是linux或国产系统上(UOS、麒麟)USB摄像头的测试程序,主要功能有 1、系统上USB摄像头的配置查询,包括摄像头支持的协议,支持的分辨率等信息 、视频预览(支持yuv422和RGB两种格式 3、录像录音 4、视频编码…

值传递、形参实参的关系、地址传递(指针和函数)

1 值传递 实现两个数字进行交换&#xff0c;代码和运行结果如下所示&#xff1a; #include<iostream> using namespace std;void change(int a, int b) {int temp a;a b;b temp;cout << "change a " << a << endl;cout << "…

raw socket是啥(一)?

对于网络通讯&#xff0c;耳熟能详的莫过于TCP、UDP&#xff0c;二者皆需要ip和port。对于一般开发人员&#xff0c;找到一个“能用”的库就可以了&#xff0c;因为流式通讯&#xff0c;会有粘包问题&#xff0c;那就需要再加一个库&#xff0c;解决粘包问题&#xff0c;这样一…

【量化课程】02_4.数理统计的基本概念

2.4_数理统计的基本概念 数理统计思维导图 更多详细内容见notebook 1.基本概念 总体&#xff1a;研究对象的全体&#xff0c;它是一个随机变量&#xff0c;用 X X X表示。 个体&#xff1a;组成总体的每个基本元素。 简单随机样本&#xff1a;来自总体 X X X的 n n n个相互…

大数据平台中元数据库—MySQL的异常故障解决

本文的主要目标是解决大数据平台中元数据库MySQL的异常故障。通过分析应用响应缓慢的问题&#xff0c;找到了集群组件HIVE和元数据库MySQL的原因。通过日志分析、工具检测和专家指导等一系列方法&#xff0c; 最终确定问题的根源是大数据集群中租户的不规范使用所导致&#xff…