机器学习PCA降维

一.降维

在数据处理中,常常会出现维度冗余,维度灾难,为了得到更精简更有价值的信息,我们就使用到了降维

降维方法

1.特征抽取

把高维空间的数据映射到低维空间,pca即为一种特征抽取方法

2.特征选择

选出原始特征的一个子集

二.特征值和特征向量

A ξ = λ ξ \textbf{A\textcolor{red}{ξ}} =λ\textbf{\textcolor{red}{ξ}} Aξ=λξ

如果矩阵对某一个向量或某些向量只发生伸缩变换,不产生旋转效果,那么这个向量就称为矩阵的特征向量ξ,伸缩的比例就是特征值λ

通过求出A的特征值和对应特征向量,就能找到旋转后的坐标轴.

经过特征向量变换下的数据称为变量主成分.

三.PCA降维

1.PCA降维目标

最小投影距离,最大投影方差.降维后不同维度相关性为0

2.最大投影方差

在这里插入图片描述

数据离散度最大,代表数据在所投影维度有越高的区分度.考虑新坐标轴

将坐标轴进行旋转就能正确降维了,旋转操作通过矩阵变换实现

通过矩阵A对坐标系进行旋转,得知,特征值对应的特征向量就是需要取得的正确坐标轴,二特征值等于旋转后坐标上对应维度方差.

3.PCA过程

中心化

中心化特征均值变为0,以达到主成分分析的目的最小投影距离,最大投影方差

标准化数据

去除量纲影响最大方差及最大特征向量

算协方差矩阵

在降维后的每一维度上,方差最大,而去中心化后,协方差矩阵的对角线上的值就是各个维度的方差.

原始数据的协方差矩阵对角线就是原始数据的方差;降维后的数据协方差矩阵就是降维后数据的方差.那么方差之和就是对角线所有元素之和.

4.实现

def pca(data, num_components=None):

    # 计算数据的均值
    mean = np.mean(data, axis=0)

    # 减去均值,得到中心化的数据
    centered_data = data - mean

    # 计算协方差矩阵
    cov_matrix = np.cov(centered_data, rowvar=False)

    # 计算协方差矩阵的特征值和特征向量
    eigenvalues, eigenvectors = np.linalg.eigh(cov_matrix)

    # 根据特征值排序,选择前num_components个最大的特征向量
    if num_components is None:
        num_components = eigenvalues.shape[0]

    # 选择前num_components个最大的特征值和对应的特征向量
    sorted_indices = np.argsort(eigenvalues)[::-1]
    selected_eigenvectors = eigenvectors[:, sorted_indices][:, :num_components]

    # 将数据投影到主成分上
    transformed_data = np.dot(centered_data, selected_eigenvectors)

    return transformed_data

测试

# 示例数据
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])

# 进行PCA降维,保留2个主成分
transformed_data = pca(data, 2)

print("降维后的数据:")
print(transformed_data)

在这里插入图片描述

四.总结

pca优缺点

  1. 优点

    (1)仅通过方差衡量,不受外因影响

    (2)主成分正交,消除原始数据成分相关的可能

    (3)方法简单,易于实现

  2. 缺点

    (1)可解释性变弱

    (2)可能丢失强力特征,可能对后续处理有影响

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值