机器学习入门|聚类(二)

简介: 本文主要对密度聚类和层次聚类进行了简单的介绍

密度聚类

顾名思义,密度聚类是基于样本分布的紧密程度来划分的。因为这个性质,密度聚类可以划分出形状不规则的簇,弥补了原型聚类只能划分凸形的聚类簇的不足。

DBSCAN算法

DBSCAN算法是基于邻域参数$(\epsilon,MinPts)$来刻画样本分布的紧密程度。

几个概念:

  • $\epsilon$邻域:给定对象半径$\epsilon$内的区域
  • 核心对象:对象的$\epsilon$邻域内有至少MinPts个样本点,则该对象为核心对象
  • 密度值达:对于样本集合D,样本点$x_{j}$在$x_{i}$的$\epsilon$邻域内,且$x_{i}$为核心对象,则称$x_{j}$由$x_{i}$密度直达
  • 密度可达:若$x_{i}$由$x_{i-1} (i=2,3,...n)$密度直达,则称$x_{1}$由$x_{n}$密度可达
  • 密度相连:若$x_{i}$和$x_{j}$均由$x_{k}$密度可达,则$x_{i}$和$x_{j}$密度相连

如果把一个核心对象以及由这个核心对象导出的所有密度可达的样本点组成一个集合,则此集合就是一个聚类簇,即DBSCAN算法就是通过遍历每一个未被划分的样本点来进行簇划分,而不是核心对象且没有归属的簇的样本点就是噪声点。

DBSCAN算法的邻域$\epsilon$和MinPts都需要使用者指定。它的缺陷是很难识别密度不同的簇,MinPts过高,则有可能使部分低密度的数据诶被错误地当成噪声点,MinPts过低,则无法正确划分高密度的簇,使不同的簇被划分到一起。

层次聚类

层次聚类对数据集进行拆分或者合并操作最终形成簇划分的一种聚类思路

AGNES算法

AGNES算法采用合并策略进行聚类,初始使数据集中每一个样本都已是一个簇,之后通过找出最近的两个簇进行合并,递归进行直到满足停止条件或者所有书籍都合并成一个簇。这里判断最近距离可以采用不同的距离计算。

1.最小距离:$d_{min}(C_{i},C_{j})=min(dist(x,z))$即两个簇之间距离最近的两个样本的距离
2.最大距离:$d_{max}(C_{i},C_{j})=max(dist(x,z))$即两个簇之间距离最大的样本之间的距离
3.平均距离:$d_{avg}(C_{i},C_{j})=\frac{1}{|C_{i}||C_{j}|}\sum_{x\in C_{i}}\sum_{x\in C_{j}} dist(x,z)$即质心距离

其中,$C_{i} (i=1,2,...,n)$是簇,$x,z$分别是$C_{i},C_{j}$中的样本点

默认情况下,$dist()$为欧氏距离。

由于算法复杂度为$O(n^{2})$,不适合大数据集。

层次聚类过程最明显的特点就是不可逆性,由于对象在合并或分裂之后,下一次聚类会在前一次聚类基础之上继续进行合并或分裂,结果一旦产生就无法变更。

由于聚类是无监督学习,不同的聚类算法还有很多,且都有各自的作用,例如把数据量化成有限单元,使所有的聚类操作都在这个网格结构(即量化的空间)上进行的网格聚类;对每一个簇都假设一个模型进行拟合的模型聚类等。

目录
相关文章
|
3月前
|
机器学习/深度学习 开发者 异构计算
机器学习入门-Colab环境
Google Colab(Colaboratory)是一个免费的云端环境,旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势,使得编写、执行和共享代码变得更加简单和高效。Colab在云端提供了预配置的环境,可以直接开始编写代码,并且提供了免费的GPU和TPU资源,这对于训练深度学习模型等计算密集型任务非常有帮助,可以加速模型训练过程。
87 0
|
24天前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
58 1
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
65 1
|
4天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
16 1
|
14天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【4月更文挑战第9天】本文介绍了使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先,简述了机器学习的基本概念和类型。接着,展示了如何安装Python和Scikit-learn,加载与处理数据,选择模型进行训练,以及评估模型性能。通过本文,读者可了解机器学习入门步骤,并借助Python和Scikit-learn开始实践。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】机器学习简单入门
【机器学习】机器学习简单入门
37 1
|
2月前
|
机器学习/深度学习 算法 数据挖掘
讲解机器学习中的 K-均值聚类算法及其优缺点。
讲解机器学习中的 K-均值聚类算法及其优缺点。
73 0
|
2月前
|
机器学习/深度学习 数据采集 算法
Python中的机器学习入门:从数据预处理到模型评估
Python中的机器学习入门:从数据预处理到模型评估
194 35
|
2月前
|
机器学习/深度学习 数据挖掘 程序员
深入理解Python协程:提升并发编程效率基于Python的机器学习入门:从理论到实践
本文旨在探讨Python协程(Coroutine)的内部机制及其在并发编程中的应用。区别于传统的线程和进程,协程提供了一种更轻量级、高效的并发编程模式。通过深入分析协程的工作原理,本文将展示如何利用协程优化程序性能,实现高效的异步任务处理。我们将通过实例探讨协程的创建、事件循环的管理、以及与异步IO的集成,为读者提供一套完整的协程应用方案。此外,本文还将对比协程与其他并发模型(如多线程和多进程)的优劣,帮助读者全面理解协程在现代编程中的重要性。 在本文中,我们将深入探讨机器学习的核心概念,并通过Python实现其基础应用。不同于传统的技术文章摘要,我们希望通过一个故事性的引入,让读者感受到
|
2月前
|
机器学习/深度学习 算法 数据挖掘
Python | 机器学习之聚类算法
Python | 机器学习之聚类算法
177 0