主成分分析(PCA)是一种常用的降维技术,它可以帮助我们在高维数据中找到最重要的特征,从而简化模型并提高效率。以下将介绍 PCA 的基本概念及其实现方法。
PCA 基本概念
PCA 的核心思想是通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这些新变量被称为主成分。
PCA 的步骤:
- 数据标准化:将每个特征值减去其均值,使得每个特征的均值变为 0。
- 计算协方差矩阵:协方差矩阵描述了特征之间的相关性。
- 计算协方差矩阵的特征值和特征向量。
- 选择主成分:根据特征值的大小选择前 k 个特征向量,k 通常小于原始特征的数量。
- 构建投影矩阵:使用选择的特征向量构建投影矩阵。
- 降维:将原始数据投影到新的低维空间。
PCA 实现
以下是一个简单的 PCA 实现示例:
import numpy as np
def pca(X, num_components):
# 数据标准化
X_mean = np.mean(X, axis=0)
X_std = np.std(X, axis=0)
X_normalized = (X - X_mean) / X_std
# 计算协方差矩阵
cov_matrix = np.cov(X_normalized, rowvar=False)
# 计算协方差矩阵的特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eigh(cov_matrix)
# 选择前 k 个特征向量
sorted_index = np.argsort(eigenvalues)[::-1]
eigenvectors_sorted = eigenvectors[:, sorted_index]
eigenvectors_subset = eigenvectors_sorted[:, :num_components]
# 构建投影矩阵
projection_matrix = eigenvectors_subset
# 降维
X_reduced = X_normalized.dot(projection_matrix)
return X_reduced
扩展阅读
如果您想了解更多关于 PCA 的信息,可以阅读以下链接:
PCA 原理图解
希望这些信息对您有所帮助!🌟