当前位置:   article > 正文

主成分分析PCA的算法是什么,降维后的数据的主要特征含义变化了需要根据业务重新界定_pca降维后

pca降维后

主成分分析PCA的算法是什么
主成分分析(PCA)是一种常用的降维技术,其算法主要包括以下几个步骤:

标准化数据:将原始数据标准化,即每个特征减去其均值并除以其标准差,使得标准化后的数据具有零均值和单位方差。
计算协方差矩阵:使用标准化后的数据计算协方差矩阵,该矩阵描述了数据之间的相关性。
在这里插入图片描述
计算特征值和特征向量:对协方差矩阵进行特征分解,计算其特征值和特征向量。
选择主成分:选择前k个特征值最大的特征向量,这些特征向量对应的维度即为需要保留的主成分。
投影数据:将原始数据投影到选择的主成分上,得到降维后的数据。

主成分分析的目的是通过找到数据中的主要模式来减少数据的维度,同时尽可能保留数据中的信息。选择的主成分应能够解释原始数据中的最大方差,并且各主成分之间应正交,以避免信息的重复。

举例子说明主成分分析的算法

假设我们有一个包含10个样本和3个特征的数据集,数据集如下:

样本 特征1 特征2 特征3
1 1.2 2.3 3.4
2 2.3 3.4 4.5
… … … …
10 6.7 7.8 8.9

步骤1:标准化数据

将每个特征减去其均值并除以其标准差,得到标准化后的数据:

样本 特征1’ 特征2’ 特征3’
1 -0.3667 -0.4333 -0.5000
2 0.3667 0.4333 0.5000
… … … …
10 1.6667 1.7333 1.8000

步骤2:计算协方差矩阵

协方差矩阵如下:

复制
特征1’ 特征2’ 特征3’
特征1’ 2.1667 0.8333 0.5000
特征2’ 0.8333 2.1667 0.5000
特征3’ 0.5000 0.5000 2.5000

步骤3:计算特征值和特征向量

对协方差矩阵进行特征分解,得到特征值和特征向量。假设前两个特征值的绝对值最大,对应的特征向量分别为(0.67, 0.33, -0.67)和(0.33, -0.67, -0.67)。

步骤4:选择主成分

选择前两个特征向量对应的维度作为主成分。

步骤5:投影数据

将原始数据投影到选择的主成分上,得到降维后的数据。具体来说,将每个样本的标准化数据与前两个特征向量相乘,得到降维后的数据。例如,第一个样本的降维后的数据为(-0.2489, -0.4899)。

在主成分分析的结果中,降维后的数据的特征含义变化了,如何确定新的特征的现实意义

主成分分析(PCA)降维后的数据的特征含义可能会发生变化,因为PCA是通过线性变换将原始特征转换为新的特征,这些新特征是原始特征的线性组合

确定新的特征的现实意义需要考虑以下几个方面:

相关性分析:首先,可以分析新特征与原始特征之间的相关性,了解新特征与原始特征之间的关联程度。如果新特征与原始特征高度相关,则可以认为新特征保留了原始特征的重要信息。

业务理解:对于具有业务背景的数据,可以通过对业务领域的了解来解释新特征的含义。例如,在金融领域中,PCA降维后的新特征可能代表了股票市场的趋势、波动性或风险等因素。

可视化分析:通过可视化PCA降维后的数据,可以直观地观察数据的分布和模式。通过观察数据点在二维或三维空间中的聚集情况,可以尝试解释新特征的含义。

需要注意的是,PCA降维后的特征可能并不是直观易懂的,特别是对于非专业人士而言。因此,在解释新特征的含义时,需要综合考虑多个方面,并尽可能地结合业务背景和领域知识来进行合理的解释。

所以主成分分析的用处不大。

用python实现,对随机生产的数据,进行主成分分析
主成分分析(PCA)是一种常用的降维技术,它通过找到数据中的主要模式来减少数据的维度。以下是一个简单的Python代码示例,演示如何使用sklearn库对随机生成的数据进行主成分分析。

import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 生成随机数据
np.random.seed(0)
n_samples = 1000
X = np.random.randn(n_samples, 5)

# 创建PCA对象
pca = PCA(n_components=2)

# 对数据进行PCA降维
X_pca = pca.fit_transform(X)

# 绘制PCA降维后的数据
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=range(n_samples), edgecolor='none', alpha=0.5, s=40)
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.title('PCA降至2维')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这个示例中,我们首先使用NumPy库生成了一个包含1000个样本和5个特征的随机数据集。然后,我们创建了一个PCA对象,指定要保留的主成分个数为2。接着,我们使用fit_transform()方法对数据进行PCA降维,并将结果存储在X_pca变量中。最后,我们使用Matplotlib库绘制PCA降维后的数据,其中x轴表示第一个主成分(PC1),y轴表示第二个主成分(PC2),不同颜色的点表示不同的样本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/304229
推荐阅读
相关标签
  

闽ICP备14008679号