033. (8.27-9.1) 主成分分析


降维 可以 作为预处理步骤,在数据应用到其他算法之前清洗数据。有应用于无标签数据的常见降维方法:

主成分分析、因子分析(假设隐变量 且 数据是这些隐变量和某些噪声的线性组合)、独立成分分析(假设数据为多个数据源的混合观测结果)。

主成分分析(PCA) 是一种非常基础的降维算法,也是应用最广的无监督算法之一,尤其适用于数据可视化、噪音过滤、特征抽取(不是特征选择)和特征工程等领域。

通过PCA进行降维处理,我们就可以同时获得决策树和SVM的优点:一方面,得到了和决策一样简单的分类器,同时分类间隔和SVM一样好。

简介

以两变量为例,在主成分分析中,一种量化两变量间关系的方法是在数据中找到一组主轴,并用这些主轴来描述数据集。
在这里插入图片描述
在这里插入图片描述
这些向量表示数据主轴,上图的箭头长度表示输入数据中各个轴的“重要程度”——更准确地说,它衡量了数据投影到主轴上的方差的大小。每个数据点在主轴上的投影就是数据的“主成分”。

PCA 移动坐标轴,第一个新轴选择的是原始数据中方差最大的方向,第2个新轴 选择和第一个 轴正交且具有次大方差的方向。该过程重复,重复次数为原始数据中特征的数目,后续选出有代表性的成分。

在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。

降维必定舍去部分信息,但一般有两个好处:1.使样本采样密度增大;2.当数据受到噪声影响时,最小特征值所对应的特征向量往往与噪声有关,将它们舍弃在一定程度上能起到去噪的效果。

缺陷:

1.经常受数据集的异常点影响是 PCA 的主要弱点。
2.PCA便于通用实现,但是很难实现个性化的优化。
3.PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。

部分数学理解

在这里插入图片描述
(对PCA降维问题)理解:
最近重构性:因为要用低维尽可能地表达高维,投影也要考虑到代表性。
最大可分性:即使是低维,也要尽可能区分样本。

基于这两点,也能得到PCA的代价函数(目标函数),且是等价推导。
(标记:下图的低维表示还未理解)
在这里插入图片描述
在这里插入图片描述
(基向量长度为1)

梳理:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。

在这里插入图片描述

使用

1.用PCA降维

用 PCA 降维意味着去除一个或多个最小主成分,从而得到一个更低维度且保留最大数据方差的数据投影,数据的总体关系仍然被大致保留了下来。

示例:
在这里插入图片描述
降维的有用之处在数据仅有两个维度时可能不是很明显,但是当数据维度很高时,它的价值就有所体现了,如对(8*8像素,即64维的)手写数字分类。

2.成分的含义

在这里插入图片描述

3. 选择成分的数量

在实际使用 PCA 的过程中,正确估计用于描述数据的成分的数量是非常重要的环节。我们可以将累计方差贡献率看作是关于成分数量的函数,从而确定所需成分的数量。


PCA 对数学知识的要求:
1.理解向量内积的几何意义与矩阵相乘知识
2.理解方差、协方差
3.线性代数相关知识

主成分分析(PCA)原理与实现

python 中的PCA

    from sklearn.decomposition import PCA
    import matplotlib.pyplot as plt
    pca = PCA(n_components=1)
    pca.fit(data_mat)
    lowDmat = pca.transform(data_mat)  # 降维后的数据
    print('降维后的数据维度:', lowDmat.shape)
    reconMat = pca.inverse_transform(lowDmat)  # s重构数据
    print("重构后的数据维度:", reconMat.shape)  # 重构数据维度

    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.scatter(data_mat[:, 0].flatten().A[0], data_mat[:, 1].flatten().A[0], marker='^', s=90)
    ax.scatter(reconMat[:, 0], reconMat[:, 1], marker='o', s=90, c='red')
    plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值