介绍二维数据与高维数据的 K-Means 聚类算法以及高维数据的 PCA 主成分分析方法。
1. 二维数据K-Means聚类
1 | import numpy as np |
2. 主成分分析PCA
PCA(Principal Component Analysis)是一种常见的数据分析方式,常用于高维数据的降维,可用于提取数据的主要特征分量。PCA 通常用于降低大型数据集的维数,使数据集中的指标数量变少,并且保留原数据集中指标的大部分信息。总而言之:减少数据指标数量,保留尽可能多的信息。
PCA 优点在于数据降维,便于提取数据的主要特征,使得数据更容易使用,减少计算开销,去除噪音等;PCA 适用于结构化数据,不仅能将数据压缩,也使得降维之后的数据特征相互独立。PCA 缺点在于不一定需要,有可能损失有用信息,只针对训练集保留主要信息,可能造成过拟合。
PCA 的步骤主要分为五步:标准化连续初始变量的范围、计算协方差矩阵以识别相关性、计算协方差矩阵的特征向量和特征值以识别主成分、创建特征向量来决定保留那些主成分、沿主成分轴重铸数据。
我们随机生成具有 y = 0.5x
的二维数据,并在 Y 轴方向上添加少量随机噪音。通过使用 PCA 法拟合数据,其中最重要的是分量和解释方差,对于这些数字的概念,让我们将其可视化为输入数据上的向量,使用分量来定义向量的方向,使用解释方差来定义向量的平方长度。
这些向量代表数据的主轴,向量的长度表明该轴在描述数据分布方面的重要性,更准确的说,它是投影时数据方差的度量到那个轴。每个数据点在主轴上的投影是数据的主成分。这种从数据轴到主轴的变换被称为 Affine transformation,基本上由平移,旋转和均匀缩放组成。
代码如下:
1 | def f(x): |
3. 高维数据PCA后聚类
1 | # 产生高维数据 |
4. 高维数据聚类并计算与中心的相似度
1 | # 产生高维数据 |