【第6章 | 聚类】(python机器学习)

6.1无监督学习概述

无监督学习(unsupervised learning) 是指从无标注数据中学习预测模型 的机器学习问题。无标注数据是自然得到的数据,预测模型表示数据的类别、转换或概率。无监督学习的本质是学习数据中的统计规律或潜在结构。

模型的输入与输出的所有可能取值的集合分别称为输入空间输出空间。输入空间与输出空间可以是有限元素集合,也可以是欧氏空间。每个输入是一 个实例,由特征向量表示。每一个输出是对输入的分析结果,由输入的类别、 转换或概率表示。模型可以实现对数据的聚类、降维或概率估计。

主要的无监督学习方法

√聚类(Clustering) :如何将教室里的学生按爱好、身高划分为5类?

√降维(Dimensionality Reduction ) :如何将原高维空间中的数据点映射到低维度的空间中?

聚类

主要算法:K-means、层次聚类、密度聚类 聚类

主要应用:市场细分、文档聚类、图像分割、图像压缩、聚类分析、特征学习或者词典学习、确定犯罪易发地区、保险欺诈检测、公共交通数据分析、IT资产集群、客户细分、识别癌症数据、搜索引擎应用、医疗应用、药物活性预测......

6.2相似度或距离度量

• 假设有n个样本,每个样本由m个属性的特征向量组成,样本合集可以用矩阵X表示

• 聚类的核心概念是相似度(similarity) 或距离(distance),有多种相似度或距离定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。

++闵可夫斯基距离++

• 闵可夫斯基距离越大相似度越小,距离越小相似度越大。

++马哈拉诺比斯距离++

• 马哈拉诺比斯距离(Mahalanobisdistance),简称马氏距离,也是另一种常用的相似度,**考虑各个分量(特征)之间的相关性并与各个分量的尺度无关。**马氏距离是在原来的基础上进行旋转,旋 转后在进行标准化,得出的距离。

• 马哈拉诺比斯距离越大相似度越小,距离越小相似度越大。

++相关系数++

• 样本之间的相似度也可以用相关系数(correlation coefficient)来表示。

• 相关系数的绝对值越接近于1,表示样本越相似。

• 越接近于0,表示样本越不相似。

++夹角余弦++

• 样本之间的相似度也可以用夹角余弦(cosine)来表示。

• 夹角余弦越接近于1,表示样本越相似

• 越接近于0,表示样本越不相似。

++相似度++

• 用距离度量相似度时,距离越小样本越相似。

• 用相关系数时,相关系数越大样本越相似。

• 注意不同相似度度量得到的结果并不一定一致。

•从上图可以看出,如果从距离的角度看,A和B比A和C更相似。

•但从相关系数的角度看,A和C比A和B更相似。

在聚类算法中,以下哪一项不是用于衡量样本相似度或距离度量的方法? D

A. 闵可夫斯基距离

B. 马哈拉诺比斯距离

C. 相关系数

D. 信息熵

++类或簇++

• 通过聚类得到的类或簇,本质是样本的子集。

• 如果一个聚类方法假定一个样本只能属于一个类,或类的交集为空集,那么该方法称为硬聚类(hard clustering)方法。

• 如果一个样本可以属于多个类,或类的交集不为空集,那么该方法称为软聚类(soft clustering)方法。

• 类或簇有多种定义,下面给出几个常见的定义。

• 类的特征可以通过不同角度来刻画,常用的特征有下面三种:

(判断题)在聚类分析中,硬聚类方法允许样本同时属于多个类而软聚类方法则要求样本只能属于一个特定的类。 ×

++类与类之间的距离++

知识回顾

• 非监督学习是从无标注数据中学习预测模型的机器学习问题。常见的无监督学习包括:聚类、降维和概率估计。

• 聚类的核心是利用相似度和距离来衡量不同样本的相似程度,从而对不同数据样本进行分组。

• 距离和相似度的度量: 闵可夫斯基距离、马氏距离、相关系数、夹角余弦

• 类和簇的定义,一般来讲若集合中是任意两个样本之间的距离小于一个常数,则称该集合为一个类。

• 类的特征:中心、直径、散布矩阵和协方差矩阵。

• 类间距离:最短距离、最长距离、中心距离和平均距离

6.3K-means聚类

++k均值聚类++

•k均值聚类是基于样本集合划分的聚类算法。

•k均值聚类将样本集合划分为k个子集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心的距离最小。

•每个样本只能属于一个类,所以k均值聚类是硬聚类。

++模型++

++策略++

• k均值聚类归结为样本集合X的划分,或者从样本到类的函数的选择问题。

• k均值聚类的策略是通过损失函数的最小化选取最优的划分或函数C*。

关于K均值聚类(K-means聚类),以下哪项描述是正确的?( CD )

A. K均值聚类是一种软聚类方法,样本可以属于多个类。

B. K均值聚类的目标是最大化样本到其所属类中心的距离。

C. K均值聚类将样本集合划分为k个子集,每个样本到其所属类的中心的距离最小。

D. k均值聚类的策略是通过损失函数的最大化选取最优的划分或函数

++算法++

•k均值聚类的算法是一个迭代的过程,每次迭代包括两个步骤。

•首先选择k个类的中心,将样本逐个指派到与其最近的中心的类中,得到一个聚类结果。

•然后更新每个类的样本的均值,作为类的新的中心。

•重复以上步骤,直到收敛为止。

++k均值聚类算法++

++++

++算法特性++

• 收敛性

• k均值聚类属于启发式方法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果。

• 注意,类中心在聚类的过程中会发生移动,但是往往不会移动太大,因为在每一步,样本被分到与其最近的中心的类中。

• 初始类的选择。

• 选择不同的初始中心,会得到不同的聚类结果。

• 初始中心的选择,比如可以用层次聚类对样本进行聚类,得到k个类时停止。然后从每个类中选取一个与中心距离最近的点。

• 类别数k的选择。

• k均值聚类中的类别数k值需要预先指定,而在实际应用中最优的k值是不知道的。

• 尝试用不同的k值聚类,检验得到聚类结果的质量,推测最优的k值。

• 聚类结果的质量可以用类的平均直径来衡量。

• 一般地,类别数变小时,平均直径会增加。

• 类别数变大超过某个值以后,平均直径不会显著降低,而这个值正是最优的k值。实验时,可以采用二分查找,快速找到最优的k值。

(判断题)K-means聚类算法中,样本被分配到最近的类中心后,类的中心会根据分配到该类的样本更新。 √

6.4层次聚类

++层次聚类:++

• 聚合聚类开始将每个样本各自分到一个类

• 之后将相距最近的两类合并,建立一个新的类

• 重复此操作直到满足停止条件

• 得到层次化的类别

• 分裂聚类开始将所有样本分到一个类

• 之后将已有类中相距最远的样本分到两个新的类

• 重复此操作直到满足停止条件

• 得到层次化的类别

++聚合聚类的具体过程++

•对于给定的样本集合,开始将每个样本分到一个类。

•然后按照一定规则,例如类间距离最小,将最满足规则条件的两个类进行合并。

•如此反复进行,每次减少一个类,直到满足停止条件,如所有样本聚为K类。

++聚合聚类++

• 聚合聚类需要预先确定下面三个要素

  1. 距离或相似度

• 闵可夫斯基距离 • 马哈拉诺比斯距离 • 相关系数 • 夹角余弦

  1. 合并规则

• 类间距离最小

• 类间距离可以是最短距离、最长距离、中心距离、平均距离

  1. • 停止条件

• 停止条件可以是类的个数达到阈值(极端情况类的个数是1)

• 类的直径超过阈值

++聚合聚类算法++

++++

在层次聚类的聚合聚类过程中,以下哪项不是必须预先确定的要素? D

A. 距离或相似度度量

B. 合并规则

C. 停止条件

D. 初始类的数量

相关推荐
小前端大牛马2 分钟前
java教程笔记(十一)-泛型
java·笔记·python
sjtu_cjs4 分钟前
Tensorrt python api 10.11.0笔记
开发语言·笔记·python
哆啦A梦的口袋呀8 分钟前
深入理解系统:UML类图
开发语言·python·uml
虎冯河24 分钟前
怎么让Comfyui导出的图像不包含工作流信息,
开发语言·python
葬爱家族小阿杰1 小时前
python执行测试用例,allure报乱码且未成功生成报告
开发语言·python·测试用例
xx155802862xx1 小时前
Python如何给视频添加音频和字幕
java·python·音视频
酷爱码1 小时前
Python实现简单音频数据压缩与解压算法
开发语言·python
花果山总钻风2 小时前
SQLAlchemy 中的 func 函数使用指南
python
知识中的海王2 小时前
Python html 库用法详解
开发语言·python
面朝大海,春不暖,花不开2 小时前
使用 Python 正则表达式实现文本替换与电话号码规范化
python·mysql·正则表达式