一文读懂【主成分分析(PCA)】

您所在的位置:网站首页 啥叫主c 一文读懂【主成分分析(PCA)】

一文读懂【主成分分析(PCA)】

2024-07-13 02:52:32| 来源: 网络整理| 查看: 265

主成分分析(PCA,Principal Component Analysis)是一种数学降维方法,其核心在于通过正交变换将一组可能线性相关的变量转换为一组线性不相关的新变量,被称为主成分。这一过程旨在在更小的维度下展示数据的特征,通过新变量以更简洁、高效的方式表达原始数据的信息。

主成分是原始变量的线性组合,其数量不多于原始变量的个数。这组新的观测数据实质上是原始数据的一种变换,虽然其含义与原始数据不同,但却包含了原始数据的大部分特征,而且维度较低,便于进一步的分析。在空间上,可以将PCA理解为将原始数据投射到一个新的坐标系统,其中第一主成分对应第一坐标轴,表示了原始数据中多个变量通过某种变换得到的新变量的变化范围。类似地,第二主成分对应第二坐标轴,代表了第二个新变量的变化范围。

投射的方式有很多种,为了最大限度地保留对原始数据的解释,通常会运用最大方差理论或最小损失理论。这意味着第一主成分具有最大的方差或变异数,即能够尽量多地解释原始数据的差异。随后的每个主成分都与前面的主成分正交(夹角为90°),并且具有仅次于前一主成分的最大方差。这种正交性质使得每个主成分都提供了不同的信息,避免了冗余,从而实现了高效的降维操作。

主成分分析(PCA,Principal Component Analysis)是一种数学降维方法,其核心在于通过正交变换将一组可能线性相关的变量转换为一组线性不相关的新变量,被称为主成分。这一过程旨在在更小的维度下展示数据的特征,通过新变量以更简洁、高效的方式表达原始数据的信息。

主成分是原始变量的线性组合,其数量不多于原始变量的个数。这组新的观测数据实质上是原始数据的一种变换,虽然其含义与原始数据不同,但却包含了原始数据的大部分特征,而且维度较低,便于进一步的分析。在空间上,可以将PCA理解为将原始数据投射到一个新的坐标系统,其中第一主成分对应第一坐标轴,表示了原始数据中多个变量通过某种变换得到的新变量的变化范围。类似地,第二主成分对应第二坐标轴,代表了第二个新变量的变化范围。

投射的方式有很多种,为了最大限度地保留对原始数据的解释,通常会运用最大方差理论或最小损失理论。这意味着第一主成分具有最大的方差或变异数,即能够尽量多地解释原始数据的差异。随后的每个主成分都与前面的主成分正交(夹角为90°),并且具有仅次于前一主成分的最大方差。这种正交性质使得每个主成分都提供了不同的信息,避免了冗余,从而实现了高效的降维操作。

其工作原理涉及以下关键步骤:

1、数据标准化:

首先,对原始数据进行标准化处理,确保每个变量具有相似的尺度。这是因为PCA对不同尺度的变量敏感,标准化能够使所有变量以相同的比例参与分析。

2、构建协方差矩阵:

基于标准化后的数据,计算变量之间的协方差矩阵。协方差矩阵反映了变量之间的线性关系强度和方向。

3、计算特征值和特征向量:

对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征值表示协方差矩阵的特征的方差,而特征向量则是与这些特征值相关联的线性变换的方向。

4、选择主成分:

按照特征值的大小排序特征向量,选择前k个特征向量作为主成分,其中k是希望保留的新变量(主成分)的数量。这些主成分对应了原始数据中最大方差的方向。

5、构建新特征空间:

使用选定的主成分构建新的特征空间。每个数据点都可以通过将其投影到这些主成分上来表示,从而实现数据的降维。

6、数据重构:

可以通过将投影后的数据点映射回原始空间,以实现对原始数据的重构。这一步通常用于评估PCA的性能和了解降维后数据的可解释性。

在Python中,实现主成分分析(PCA)通常使用科学计算库NumPy和数据分析库pandas。此外,可以使用scikit-learn库来简化PCA的实现。以下是一个简单的例子:

首先,确保你已经安装了NumPy、pandas和scikit-learn库。你可以使用以下命令安装:

pip install numpy pandas scikit-learn

然后,可以使用以下Python代码进行PCA:

import numpy as np import pandas as pd from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt ​ # 生成模拟数据 np.random.seed(42) data = np.random.rand(100, 5) # 生成100个样本,每个样本有5个特征 ​ # 将数据转换为pandas DataFrame columns = ['Feature1', 'Feature2', 'Feature3', 'Feature4', 'Feature5'] df = pd.DataFrame(data, columns=columns) ​ # 标准化数据 scaler = StandardScaler() scaled_data = scaler.fit_transform(df) ​ # 使用scikit-learn进行PCA pca = PCA(n_components=2) # 选择保留的主成分数量 principal_components = pca.fit_transform(scaled_data) ​ # 将主成分数据转换为DataFrame principal_df = pd.DataFrame(data=principal_components, columns=['PC1', 'PC2']) ​ # 输出每个主成分的方差解释比例 explained_variance_ratio = pca.explained_variance_ratio_ print("Explained Variance Ratio:", explained_variance_ratio) ​ # 可视化原始数据和主成分 fig, ax = plt.subplots(1, 2, figsize=(12, 5)) ​ # 原始数据可视化 ax[0].scatter(df['Feature1'], df['Feature2']) ax[0].set_title('Original Data') ​ # 主成分可视化 ax[1].scatter(principal_df['PC1'], principal_df['PC2']) ax[1].set_title('Principal Components') ​ plt.show()

此示例中,我们生成了一个包含5个特征的模拟数据集,然后使用PCA将数据降至2维。最后,我们可视化了原始数据和主成分。在实际应用中,你可以替换模拟数据为你自己的数据集。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭