实验七
主成分分析和聚类
主成分分析 PCA
概念
- 降维
- 有助于数据可视化
- 有效地解决维度灾难问题
- 数据压缩,提升模型训练效率
- 主成分分析
- 最简单,最直观,最常用
- 将数据投影到一个正交特征子空间中
工作流
-
根据 散度 (数据在某一特征中的分散程度)降低的顺序对特征进行排序,随后取前
项; -
计算原始
维数据的散度值和协方差; -
协方差矩阵可以被本征化,分解为一组本征向量和一组本征值,样本
的最大方差位于最大本征值对应的本征向量上。
莺尾花(Iris)数据集
- PCA 降维工具位于
sklearn.decomposition.PCA
PCA.components_
可以获取主成分分析后获得的各正交主成分组成PCA.explained_variance_ratio_
可以获取主成分分析后各正交主成分的方差、
手写数字(MNIST)数据集
- t-SNE 降维不具有线性约束
- t-SNE 降维工具位于
sklearn.manifold.TSNE
- t-SNE 运行耗时远高于 PCA
聚类
- Sklearn 内置了不同类型的聚类算法,其适用场景也不同
K-Means 聚类
- 选择认为最佳的类别数量
,即样本大概可以分为多少个簇 - 在数据空间内随机初始化
点为 质心 - 将每个观察数据点划分到于其最近的簇的质心的簇
- 将质心更新为一个簇中所有数据点的中心
- 重复步骤 3 和 4 步骤直到所有质心都相对稳定
K-Means 对聚类质心的初始位置的很敏感,可以多次运行算法,然后平均所有质心结果。
K-均值算法中 K 值的选择
K-均值存在的问题
- K-Means 是一种 NP-Hard 问题
- 对于
个 维数据聚集为 类,K-Means 复杂度为 - 可以借助 MiniBatch K-Means 算法降低复杂度
近邻传播算法
-
不需要事先设置簇的数量
-
根据观测点之间的相似性来对数据进行聚类
-
相似性指标:负平方距离
-
吸引度:样本
适合作为 的聚类中的的程度 -
归属度:样本
选择 作为聚类中心的合适程度
谱聚类
- 谱聚类是一种图模型
- 谱聚类通过邻接矩阵描述每两个观测点之间的相似性
- 谱聚类的过程是图分割的过程(Normalized Cut 问题)
凝聚聚类
-
流程:
- 首先将每个观测点都作为一个簇
- 然后按降序对每两个簇中心之间距离进行排序
- 取最近的两个相邻的簇并将它们合并为一个簇,然后重新计算簇中心
- 重复步骤 2 和 3 ,直到所有观测点都合并到一个簇中
-
距离公式:
-
单连接
-
全连接
-
平均连接
-
质心连接
平均连接时间效率最高,不需要在每次合并后重算距离。
-
-
一般用树状图表示聚类过程
聚类模型评价
调整兰德指数
-
兰德指数
其中,
是样本中数据点对数的数量、 表示在真实标签与聚类结果中都是同类别的观测点对数、 表示在真实标签与聚类结果中都是不同类别的观测点对数。 -
调整兰德指数
同质性、完整性、V-measure
-
同质性
-
完整性
其中,
- V-measure 值
轮廓系数
其中,
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 纱雾の闺房!