主成分分析(PCA)介绍

pca · 浏览次数 : 0

小编点评

理发店发型偏好数据分析与应用:通过主成分分析(PCA)提取主要信息 摘要 本文以理发店的数据为例,介绍了主成分分析(PCA)的基本原理及其在数据分析中的应用。通过PCA,可以提取顾客对不同发型的偏好信息,并进行降维处理。 关键词:主成分分析(PCA),发型偏好,矩阵运算,数据降维 一、引言 随着市场竞争的加剧,了解客户的需求和偏好对于商家至关重要。本文以一家理发店的数据为例,探讨了如何通过主成分分析(PCA)技术提取顾客对不同发型的偏好信息,为商家提供决策依据。 二、数据预处理与PCA引入 首先,我们对原始数据进行预处理,包括去除平均值、计算协方差矩阵等。接着,引入PCA作为数据分析工具,用于提取数据的主成分。PCA能够将多维数据降维至二维或三维空间,便于观察数据的主要模式和差异。 三、计算过程演示 以五个顾客对五种发型的喜好程度数据为例,演示PCA的计算过程。通过数据中心的标准化、协方差矩阵计算、特征值求解和特征向量提取,最终得到两个主成分向量。 四、特征向量解释及应用 基于PCA得出的特征向量,可以总结顾客对各种发型的偏好,进而制定相应的营销策略。此外,PCA还有助于理解不同发型间的相关性,为组合发型提供可能性。 五、结论与展望 本文通过实例分析了发型偏好数据的PCA处理过程。PCA能在多个维度中提取主成分,揭示顾客偏好的本质,并支持日常营销活动的优化。未来可结合更多数据源和应用场景,发展更精细化的顾客洞察。

正文


假设你有一家理发店,已经记录了过去一年中所有顾客的头发长度和发型偏好的数据。现在你想从这些数据中提取一些主要的信息,比如顾客最常选择的发型类型,以及不同发型之间的相关性等。这对于你未来开展有针对性的营销活动很有帮助。

具体来说,我们可以将每个顾客的发型偏好用一个多维向量来表示,每一维度对应一种发型类型的喜好程度(比如评分1-5分)。这样,所有顾客就形成了一个海量的、高维的数据集。

这时候,我们可以对这个数据集进行主成分分析(PCA)。PCA的核心就是找到数据的主要特征向量,即那些能够最大程度解释数据方差的方向向量。

例如,假设经过PCA分析,发现主要有两个显著的特征向量:

  • 第一个特征向量对应"时尚发型"这个主成分
  • 第二个特征向量对应"保守发型"这个主成分

沿着这两个特征向量方向投影,就可以非常准确地还原出原始的高维数据。

这意味着,尽管原始数据有很多维度(发型类型),但是顾客的实际偏好可以用"时尚发型"和"保守发型"这两个主成分来概括和解释。

利用这两个主要特征向量,你可以:

  • 分析哪些具体发型类型属于时尚型或保守型
  • 根据客户的偏好,将他们分成偏好时尚的群体和偏好保守的群体
  • 针对不同群体制定不同的营销策略和发型组合

所以,通过PCA分析得到的特征向量,可以帮助我们从高维复杂的数据中提取出主要的信息,发现数据背后的内在结构和群体特征,从而指导后续的决策。

计算过程

一个主成分分析(PCA)的具体计算过程示例。我们继续用理发店的发型偏好数据作为例子。

假设我们有5个顾客,每个顾客对5种发型(A,B,C,D,E)的喜好程度用1-5分评分,数据如下:

顾客1: [5, 4, 2, 1, 3]
顾客2: [4, 5, 1, 2, 3]
顾客3: [2, 1, 5, 4, 3]
顾客4: [1, 2, 4, 5, 2]
顾客5: [3, 3, 3, 3, 3]

我们的目标是找到能最大程度解释这些数据方差的主要特征向量。计算步骤如下:

  1. 将原始数据矩阵X中心化(去均值),得到均值为0的矩阵
  2. 计算X的协方差矩阵: Σ = (1/n) * X^T * X (n为样本数)
  3. 计算协方差矩阵Σ的特征值和对应的特征向量
  4. 将特征向量按照对应的特征值大小从高到低排序
  5. 选取前k个最大的特征值对应的特征向量作为主成分

具体计算:

  1. 去均值后的X矩阵为:
   [2   1 -1 -2   0 ]
   [1   2 -2 -1   0 ]
   [-1 -2  2  1   0 ]
   [-2 -1  1  2  -1 ]
   [0   0  0  0   0 ]
  1. 计算协方差矩阵Σ:
   [3.2  0.8 -0.8 -0.8 -0.8]
   [0.8  3.2 -0.8 -0.8 -0.8]
   [-0.8 -0.8  3.2  0.8  0.8]
   [-0.8 -0.8  0.8  3.2  0.8]
   [-0.8 -0.8  0.8  0.8  0.8]
  1. 计算Σ的特征值和对应特征向量(略去具体过程):
    特征值1 = 6.828, 对应特征向量v1 = [0.456, 0.456, -0.456, -0.456, -0.364]
    特征值2 = 2.172, 对应特征向量v2 = [0.556, -0.282, -0.282, 0.718, 0.166]
    ...

  2. 由于前两个特征值最大,所以选取v1和v2作为主成分

  3. v1对应"时尚发型"的主成分, v2主要对应"保守发型"

通过将原始5维数据投影到由v1和v2张成的2维空间,就能很好地概括原始数据的主要模式和差异。
通过矩阵运算来计算每个数据点在v1和v2方向上的投影分量。

投影分量计算

原始的5维数据为X = (x1, x2, x3, x4, x5),其中x1-x5分别是顾客对5种发型的评分。

现在我们想将X投影到由v1和v2张成的2维平面上,可以通过下面的矩阵运算:
X' = [v1 v2]T * X

其中:

  • v1 = [0.456, 0.456, -0.456, -0.456, -0.364]
  • v2 = [0.556, -0.282, -0.282, 0.718, 0.166 ]
  • [v1 v2]T 是一个2x5的矩阵,每行就是v1和v2 , T表示矩阵的转置(Transpose)运算
  • X是原始5维数据
  • X'是投影后的2维数据

具体运算就是:

  1. 先将v1和v2并列成一个2x5矩阵
  2. 将X当成一个5x1的列向量
  3. 通过矩阵乘法 [v1 v2]T * X 得到结果X'
  4. 计算的结果X' = (x1', x2')是一个2x1的向量,其中x1'就是X在v1方向的投影分量,x2'就是X在v2方向的投影分量。

通过这样的矩阵投影运算,我们就能将任意一个原始5维数据X,映射到一个二维坐标点(x1',x2')上。

不同顾客对应的二维坐标点(x1',x2')分布在2D平面上,散点分布的模式就能很好地展示:

  • 在v1(时尚发型)方向投影的点,代表偏好时尚发型
  • 在v2(保守发型)方向投影的点,代表偏好保守发型
  • 在两个方向上都投影值较小的点,代表比较中性的顾客;

这种将原始高维数据投影到主成分2维平面的方法,我们既降低了维度,又能很好地保留和展示数据中的主要模式和差异信息,这正是PCA的精髓所在。

这个例子展示了如何通过PCA的数学计算过程,从复杂数据中发现主要的特征向量,并利用它们提取主成分信息。

与主成分分析(PCA)介绍相似的内容:

主成分分析(PCA)介绍

目录计算过程投影分量计算 假设你有一家理发店,已经记录了过去一年中所有顾客的头发长度和发型偏好的数据。现在你想从这些数据中提取一些主要的信息,比如顾客最常选择的发型类型,以及不同发型之间的相关性等。这对于你未来开展有针对性的营销活动很有帮助。 具体来说,我们可以将每个顾客的发型偏好用一个多维向量来表

【数学】主成分分析(PCA)的详细深度推导过程

Based on Deep Learning (2017, MIT) book. 本文基于Deep Learning (2017, MIT),推导过程补全了所涉及的知识及书中推导过程中跳跃和省略的部分。 blog 1 概述 现代数据集,如网络索引、高分辨率图像、气象学、实验测量等,通常包含高维特征,

聊聊基于Alink库的主成分分析(PCA)

概述 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取技术,用于将高维数据转换为低维的特征空间。其目标是通过线性变换将原始特征转化为一组新的互相无关的变量,这些新变量称为主成分,它们按照方差递减的顺序排列,以保留尽可能多的原始数据信息。 主

算法金 | 再见,PCA 主成分分析!

​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 概念:数据降维的数学方法 定义 主成分分析(PCA)是一种统计方法,通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这组新的变量称为主成分。 大白话,PCA能够从数据

解密数仓高可用failover流程

摘要: Gaussdb的HA采用主备从的架构实现数据可靠性。当主DN发生故障时,备DN走failover流程,升级成为新主DN,保证集群不因单DN故障而中断业务。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】dws高可用之failover流程大解密》,作者:fxy0224。 众所

【规范】Git分支管理,看看我司是咋整的

制定Git分支管理规范旨在加速团队协作,确保代码质量和主分支稳定性,支持敏捷开发流程。主要涉及分支包括:主分支(master/main)确保生产环境稳定;开发分支(develop)用于集成日常开发成果;特性分支(feature)支持单独功能开发;修复分支(hotfix)快速修复线上问题。规范流程涵盖...

2017年,我成为了技术博主

2017年9月,我已经大三了。 >>上一篇(爪哇,我初窥门径) 我大二学了很多java技术,看似我一会就把javaweb/ssh/ssm这些技术栈给学了。 这些技术确实不难,即便是我,我都能学会,门槛并不高。 但是,这也不是能随便百度学学,10分钟就懂了,学会了。 从理解技术的用途,再到学习用法,再

Karmada v1.5发布:多调度组助力成本优化

摘要:在最新发布的1.5版本中,Karmada 提供了多调度组的能力,利用该能力,用户可以实现将业务优先调度到成本更低的集群,或者在主集群故障时,优先迁移业务到指定的备份集群。 本文分享自华为云社区《Karmada v1.5发布!多调度组助力成本优化》,作者:华为云云原生团队。 Karmada 是开

大营销抽奖系统,DDD开发要如何建模?

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 大家好,我是技术UP主小傅哥。 ‍ 经过5.1假期的一顿框框输出,终于完成了《大营销项目》第二阶段的开发和上线,体验地址:https://gaga.plus 有了这个项目的落地,

爽了!免费的SSL,还能自动续期!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 大家好,我是技术UP主小傅哥。 兄弟,当你手里有不少域名,每个域名又配置子域名,那么ssl将是一笔不小的费用。当然各个云厂商,也都有提供免费的ssl证书,但这里有一个问题,就是基本都