内容正文:
课程名称
第12章 主成分分析
计划学时
2学时
内容分析
本章主要介绍数据降维、实战:通过Python实现简单的主成分分析、对Iris数据集降维
教学目标
与教学要求
要求学生了解数据降维的概念、掌握主成分分析的相关知识、掌握通过主成分分析来对数据进行降维的方法
教学重点
实战:通过Python实现简单的主成分分析、对Iris数据集降维
教学难点
实战:通过Python实现简单的主成分分析、对Iris数据集降维
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(数据降维、实战:通过Python实现简单的主成分分析)
了解Python机器学习知识
1.介绍本书,引出本课时的主题
庞大的数据集为研究和应用提供了丰富的信息, 与此同时也增加了信息的复杂度。 许多变量之间可能存在着相关性, 如果仅仅对每个指标进行分析, 所得到的结果往往是孤立的, 无法充分利用数据中所包含的信息, 因此如果随意地减少指标来提升分析效率会导致有用信息的损失, 甚至产生错误的结论。 科学家们开发出了各种数据降维方法来合理地减少指标并 尽 可 能 地 对 集 数 据 进 行 全 面 的 分 析。 主 成 分 分 析 (Principal ComponentsAnalysis,PCA) 便是最常见的降维方法之一, 在数据压缩、 消除冗余数据和消除数据噪声等领域都有广泛的应用。
2.明确学习目标
(1) 能够掌握数据降维
(2) 能够掌握实战:通过Python实现简单的主成分分析
知识讲解
· 数据降维
主成分分析法属于无监督的机器学习算法, 主要用于数据的降维。 该算法通过正交变换将一组可能存在相关性的变量数据转换为一组线性不相关的变量, 转换后的变量被称为主成分。 数据集中各变量之间往往存在一定的相关性, 因此可以将关系紧密的多个变量变成尽可能少的新变量, 使这些新变量保持低相关性, 以此达到简化数据集的目的。 通过主成分分析从数据集中发现更便于人类理解的特征。
在学习主成分分析算法之前, 有必要了解一下数据降维的概念。 本节将通过一个简单的例子来解释数据降维的概念。 假设一家超市某品牌6 种瓶装牛奶的价格数据集为 X , 牛奶的价格与容量如表所示。
主成分分析法的优点和缺点如下所示。
1. 优点
• 主成分分析法属于无监督学习算法, 不受参数限制。 在主成分分析法的计算过程中无须人为设定参数或根据任何经验模型对计算进行干预, 最后的结果只与数据本身相关。
• 可以对数据进行降维处理。 通过对求解的主成分向量的重要性进行排序, 根据需要取前几个最重要的主成分, 剔除后续不重要的主成分, 从而实现数据的降维, 达到简化模型或者对数据的压缩。 这种有损压缩可以较大程度地保持原有数据的信息。
• 各主成分之间正交, 可消除原始数据成分间的相互影响。
• 计算方法简单, 易于实现, 降低训练模型的成本。
2. 缺点
• 如果用户对观测对象有一定的先验知识, 掌握了数据的一些特征, 却无法通过参数
化等方法对处理过程进行干预, 通过主成分分析可能难以达到预期的效果。
• 被剔除的贡献率小的主成分可能含有样本差异的重要信息。
• 特征值矩阵正交向量的空间唯一性有待验证。
• 在非高斯分布的情况下, 主成分分析法得出的主成分可能并不是最优解, 此时在寻找主成分时不能将方差作为衡量重要性的标准。
值得注意的是, 主成分分析法属于有损降维法。 至此, 已经初步掌握了主成分分析的基本概念, 接下来将介绍通过 Python 实现主成分分析的方法。
· 实战:通过Python实现简单的主成分分析
通过前面的学习, 已经基本了解了主成分分析法的概念, 本节将通过一个简单的示例来演示通过 Python 实现主成分分析的方法。 假设, 有m 条n 维数据, 则实现主成分分析的大致步骤如下所示。
(1) 将原始数据按列组成n 行m 列矩阵X 。
(2) 对矩阵的每一行进行零均值化, 即各行的数据值减去该行的均值。
(3) 求出协方差矩阵C = 1mXTX 。
(4) 求出协方差矩阵的特征值及对应的特征向量。
(5) 将特征向量按对应特征值大小从上到下按行排列成矩阵, 取前k 行组成矩阵P 。
(6) Y =PX 即为降维到k 维后的数据。
NumPy 中的linalg 模块可以用于寻找特征向量和特征值, 通过eig() 方法便可以求解特征向量和特征值。
首先, 构建一个简单的数据集。 具体如例所示。
第二课时
(对Iris数据集降维)
回顾内容
1. 回顾上节内容,引出本课时主题。
上节已经介绍了数据降维、实战:通过Python实现简单的主成分分析,下面开始讲解对Iris数据集降维。从而引出本节的内容。
2.明确学习目标
(1) 能够掌