机器学习——PCA主成分分析

目录

PCA主成分分析介绍

PCA主成分分析概念

PCA主成分分析的优缺点与应用场景

PCA主成分分析相关知识

特征维度约减(降维)

为什么要进行特征维度约减

维度约减的方法

主成分分析(PCA)

PCA算法流程:

PCA主成分分析代码实现:

总结:


PCA主成分分析介绍

PCA主成分分析概念

        主成分分析(Principal Component Analysis,PCA)是一种常用的无监督学习算法,用于降维和数据可视化。其目标是通过线性变换将高维数据集投影到低维空间中,同时尽可能保留原始数据的信息。

        PCA的基本思想是找到数据中的主要成分或特征,即那些能够解释数据方差最大部分的特征。这些主成分是数据中协方差最大的方向,也就是数据变化最大的方向。通过计算数据的协方差矩阵,可以得到一组正交的特征向量,它们称为主成分。这些主成分按照其对数据方差解释的贡献程度进行排序。

        在降维过程中,可以选择保留前几个主成分,将数据投影到这些主成分构成的子空间中。这样做可以减少数据的维度,同时尽量保留原始数据的信息。降维后的数据在可视化、特征选取、数据压缩等方面有广泛应用。

        总而言之,通过PCA,可以发现数据中的隐藏模式、相关性或异常值,进而用于数据预处理、特征工程和可视化等任务。

PCA主成分分析的优缺点与应用场景

优点:

  1. 数据降维:PCA可以将高维数据降低到较低的维度,减少数据集的复杂性和存储空间。

  2. 特征提取:PCA通过提取最相关的特征,能够保留数据的主要信息,过滤掉噪声和冗余信息。

  3. 无监督学习:PCA是一种无监督学习方法,不需要预先标记的训练样本,适用于大多数数据集。

  4. 数据可视化:PCA可以将高维数据投影到二维或三维空间,方便可视化观察数据的分布和结构。

  5. 处理相关性:PCA能够找到数据中的相关性,将相关特征合并为新的维度,简化数据分析过程。

缺点:

  1. 对异常值敏感:PCA对异常值比较敏感,可能会影响结果的准确性。

  2. 数据线性关系:PCA假设数据呈线性关系,不适用于非线性数据集。

  3. 解释性差:PCA得到的主成分是原始特征的线性组合,可解释性相对较差。

应用场景:

  1. 数据压缩和降维:通过PCA可以减少数据的维度,提高计算效率,并在不显著降低信息质量的情况下进行数据压缩。

  2. 特征选择和特征工程:PCA可以用于选择最具代表性的特征,并去除冗余信息,为后续机器学习任务提供更好的输入。

  3. 数据可视化:通过PCA将高维数据投影到二维或三维空间,可以帮助人们更直观地理解数据的分布、聚类等特征。

  4. 数据预处理:PCA可以用于数据预处理,例如去除噪声、标准化数据、处理缺失值等。

PCA主成分分析相关知识

特征维度约减(降维)

        特征维度约减是PCA主成分分析中的一个核心目标,即将原始数据的维度从高维度降低到低维度。通过特征维度约减,可以消除或减少数据中的冗余信息,提取出最具代表性的特征,从而简化数据的表示和处理。

        

为什么要进行特征维度约减

1.大多数机器学习算法在高维空间中表现不够鲁棒

如:查询速度与精度随着维度增加而降低 .


2.有价值的维度往往很少

如:在基因序列中对于特定疾病有价值的点位十分有限


3.可视化 : 高位数据在 2D 或 3D 空间中的可视化


4.维度约减 : 高效的存储与检索


5.噪声消除 : 提升分类或识别精度

维度约减的方法

无监督方法
– Latent Semantic Indexing (LSI): truncated SVD
– Independent Component Analysis (ICA)
– Principal Component Analysis (PCA)
– Canonical Correlation Analysis (CCA)
监督方法
– Linear Discriminant Analysis (LDA)
半监督方法
– Research topic

介绍:

        无监督学习是指在没有标签信息的情况下,从数据中学习数据的内在结构、模式和关系的机器学习方法。常用的无监督学习算法包括聚类、降维、密度估计等。聚类算法将数据分成若干组,每一组内部的数据相似度高,组与组之间的相似度低;降维算法则将高维数据映射到低维空间中,以便于数据的可视化和处理;密度估计算法则根据数据的分布情况,估计出数据的概率密度函数。

        监督学习是指在已知标签信息的情况下,从数据中学习一个预测模型,用于对新数据进行分类或回归。常用的监督学习算法包括分类和回归。分类算法通过学习样本的特征和类别标签之间的关系,建立一个分类模型,用于对新样本进行分类;回归算法则通过学习样本的特征和目标值之间的关系,建立一个回归模型,用于对新样本的目标值进行预测。

        半监督学习是介于监督学习和无监督学习之间的一种学习方式,它利用大量未标记的数据和少量有标记的数据,提高模型的泛化能力。在半监督学习中,我们通常使用无监督学习算法来学习数据的内部结构,从而产生更好的特征表示;然后,使用有标记的数据来训练监督学习模型,以便提高模型的精度。

主成分分析(PCA)

• 主成分分析 (PCA) 基本思路
1.通过协方差分析,建立 高维空间到低维空间的线性映射 / 矩阵
2.保留尽可能多的样本信息
3.压缩后的数据对分类、聚类尽量不产生影响,甚至有所提升
• 将原始高维向量通过投影矩阵,投射到低维空间
– 这些向量称为 主成分 (PCs), 具有无关性、正交的特点。重要的是这些向量的数量要远小于高维空间的维度。

PCA算法流程:

PCA主成分分析代码实现:

import numpy as np
import matplotlib.pyplot as plt

# 生成随机二维数据集
X = np.random.rand(100, 2)

# 中心化处理
X_centered = X - np.mean(X, axis=0)

# 归一化处理
X_normalized = X_centered / np.std(X_centered, axis=0)

# 计算协方差矩阵
cov_matrix = np.cov(X_normalized.T)

# 特征值分解
eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)

# 按特征值从大到小排序
sorted_indices = np.argsort(eigenvalues)[::-1]
sorted_eigenvalues = eigenvalues[sorted_indices]
sorted_eigenvectors = eigenvectors[:, sorted_indices]

# 选择前k个主成分
k = 2
selected_eigenvectors = sorted_eigenvectors[:, :k]

# 降维投影
X_reduced = X_normalized.dot(selected_eigenvectors)

# 绘制降维后的数据
plt.scatter(X_reduced[:, 0], X_reduced[:, 1])
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.title('PCA')
plt.show()

运行结果:

可以看到,结果能够正确地绘制降维后的数据的散点图,并显示两个主成分。

当我们将k,设置为1时

即:

# 选择前k个主成分
k = 1
selected_eigenvectors = sorted_eigenvectors[:, :k]

运行结果:

够看到一条直线的降维结果。对于其他任意维数的数据集,降维后也将是一条直线。

总结:

        通过PCA,可以发现数据中的隐藏模式、相关性或异常值,进而用于数据预处理、特征工程和可视化等任务。总之,PCA是一种常用且有效的降维和特征提取技术,广泛应用于数据分析、机器学习和模式识别等领域。

        PCA是一种有效的数据降维方法,可以在减少特征数量的同时保留数据的重要信息。通过实验和分析降维后的数据,可以更好地理解数据并找到更合适的特征表示方式

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值