无监督学习的目标:
利用无标签的数据学习数据的分部或数据与数据之间的关系被称作无监督学习。
无监督学习最常应用的场景是聚类和降维。
聚类 (sklearn.cluster模块)
定义
- 聚类(clustering),就是根据数据的“相似性”将数据分为多类的过程。
- 评估两个不同样本之间的“相似性” ,通常使用的方法就是计算两个样本之间的“距离”。使用不同的方法计算样本间的距离会关系到聚类结果的好坏。
- 什么样的数据是相似的,如何定义相似性,是很多机器学习任务的基本问题。
常用距离计算方法
s:协方差矩阵
马氏距离:红黑>绿黑
欧氏距离:红黑<绿
sklearn.cluster模块输入数据形式
标准数据输入格式:[样本个数,特征个数]定义的矩阵形式。
相似性矩阵输入格式:即由[样本数目,样本数目]定义的矩阵形式,矩阵中
的每一个元素为两个样本的相似度,如DBSCAN, AffinityPropagation(近邻传
播算法)接受这种输入。如果以余弦相似度为例,则对角线元素全为1. 矩阵中每
个元素的取值范围为[0,1]
降维(sklearn.decomposition模块)
定义
降维,就是在保证数据所具有的代表性特性或者分布的情况下,将高维数据转化为低维数据的过程。
目的:
- 数据的可视化
- 精简数据(提高其它机器学习算法效率)
聚类 vs.降维
聚类和降维都是无监督学习的典型任务,任务之间存在关联,比如某些高维数据的聚类可以通过降维处理更好的获得,另外学界研究也表明代表性的聚类算法如k-means与降维算法如NMF之间存在等价性。
sklearn vs.降维
- 降维是机器学习领域的一个重要研究内容,有很多被工业界和学术界接受的典型算法,截止到目前sklearn库提供7种降维算法。
- 降维过程也可以被理解为对数据集的组成成份进行分解(decomposition)的过程,因此sklearn为降维模块命名为decomposition, 在对降维算法调用需要使用sklearn.decomposition模块