概念
主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术,用于减少数据集的维度并提取数据中的主要信息。它通过线性变换将原始数据投影到新的坐标系中,使得新坐标系的方差最大化,从而捕捉数据中的主要变化模式。
主成分分析的基本思想是将原始数据投影到一个方向上,使得投影数据的方差最大化。然后,找到下一个方向,使得投影数据在这个新方向上的方差最大化,同时与前一个方向正交。这样逐步找到多个正交方向,这些方向称为主成分,它们按照方差从大到小排列。
基本步骤
标准化数据:首先,需要对原始数据进行标准化,使得不同维度的变量具有相同的尺度。这样可以确保在计算协方差矩阵时,不同维度的权重不会被尺度影响。
计算协方差矩阵:计算标准化后的数据的协方差矩阵,以评估不同维度之间的关系。
计算特征向量和特征值:通过对协方差矩阵进行特征分解,得到特征向量和特征值。特征向量表示主成分的方向,而特征值表示数据在对应方向上的方差。
选择主成分:根据特征值的大小,选择要保留的主成分数量。通常,选择特征值最大的前几个主成分,以保留数据中最大的方差。
投影数据:将原始数据投影到所选择的主成分上,得到降维后的数据。
代码实现
import numpy as np
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
data = load_iris()
X = data.data
# 创建PCA模型并降维
pca = PCA(n_components=2) # 降到2维
X_pca = pca.fit_transform(X)
# 输出降维后的数据
print(X_pca)