机器学习-无监督学习之聚类

news/2024/5/20 6:22:58 标签: 机器学习, 学习, 聚类

文章目录

K均值聚类

  • 步骤:
    Step1:随机选取样本作为初始均值向量。
    Step2:计算样本点到各均值向量的距离,距离哪个最近就属于哪个簇
    Step3:重新计算中心点作为均值向量,重复第二步直到收敛
  • 常见距离
    • 曼哈顿距离(街区距离)
    • 欧氏距离
    • 切比雪夫距离(棋盘距离)
    • 闵氏距离(结合前三种)
    • 余弦相似度
      • 适用场景:塔吊和文本分析
    • 汉明距离
      • 适用场景:计算机网络中二进制纠错
  • 没有哪个距离最好,只有哪个距离最合适,这就是理解这么多距离的原因

密度聚类(DBSCAN)

  1. 概念:
  • 给定数据集D={x1,x2,…,xm}
  • 邻域ε:对x∈D,其ε邻域包含样本集D中与x的距离不大于ε的样本
  • 核心对象:若x的ε邻域至少包含MinPts个样本,即|N(x)|≥MinPts,则x是一个核心对象。
    N ( x ) = { x ′ ∈ D ∣ dist ( x , x ′ ) ≤ ε } N(x) = \{x' \in D \mid \text{dist}(x, x') \leq \varepsilon\} N(x)={xDdist(x,x)ε}
  1. 密度直达、密度可达、密度相连

层次聚类

应用:生物领域

AGNES 算法

  • 思想类似归并排序,自底向上
    Step1:先将每个样本当成一个簇
    Step2:然后将距离最近的两个簇进行合并
    Step3:重复Step2
    直到,最远的两个簇的距离超过阈值或簇的个数达到指定值
  • 距离:最大距离、最小距离、平均距离

DIANA算法

  • 思想类似快速排序,自顶向下
    Step1:初始化,所有样本集中归为一个簇
    Step2:在同一个簇中,计算任意两个样本之间的距离,找到距离最远的两个样本点a,b,
    将a,b作为两个簇的中心:
    Step3:计算原来簇中剩余样本点距离a,b的距离,距离哪个中心近,分配到哪个簇中
    Step4:重复步骤2、3
    直到,最远两簇距离不足阈值,或者簇的个数达到指定值,终止算法

高斯混合模型聚类

  • 应用:将混合的连个数据集分开
  • 一维高斯函数,多元独立高斯函数
  • 正态分布就是高斯函数
    f ( x ) = 1 ( 2 π ) d / 2 ⋅ ∣ Σ ∣ 1 / 2 ⋅ exp ⁡ ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f(x) = \frac{1}{(2\pi)^{d/2} \cdot |\Sigma|^{1/2}} \cdot \exp\left(-\frac{1}{2}(x - \mu)^T \Sigma^{-1} (x - \mu)\right) f(x)=(2π)d/2∣Σ1/21exp(21(xμ)TΣ1(xμ))
  • 高斯混合模型:
    f ( x ) = ∑ i = 1 K w i ⋅ 1 ( 2 π ) d / 2 ⋅ ∣ Σ i ∣ 1 / 2 ⋅ exp ⁡ ( − 1 2 ( x − μ i ) T Σ i − 1 ( x − μ i ) ) f(x) = \sum_{i=1}^{K} w_i \cdot \frac{1}{(2\pi)^{d/2} \cdot |\Sigma_i|^{1/2}} \cdot \exp\left(-\frac{1}{2}(x - \mu_i)^T \Sigma_i^{-1} (x - \mu_i)\right) f(x)=i=1Kwi(2π)d/2Σi1/21exp(21(xμi)TΣi1(xμi))
    Step1:将参数随机初始化
    Step2:计算x_j由各混合成分生成的后验概率,即观测数据x_j由第i个分模型生成的概率p(z_j=i|x_j)并记为γ_ji
    Responsibility ( x i , θ ) = π k ⋅ N ( x i ∣ μ k , Σ k ) ∑ j = 1 K π j ⋅ N ( x i ∣ μ j , Σ j ) \text{Responsibility}(x_i, \theta) = \frac{\pi_k \cdot \mathcal{N}(x_i | \mu_k, \Sigma_k)}{\sum_{j=1}^{K} \pi_j \cdot \mathcal{N}(x_i | \mu_j, \Sigma_j)} Responsibility(xi,θ)=j=1KπjN(xiμj,Σj)πkN(xiμk,Σk)
    Step3:利用γ_ji计算新均值
    Step4:利用γ_ji计算新标准差
    Step5:利用γ_ji计算新权值
    Step6:重复Step2-5直到收敛
  • 最大似然函数思想

聚类效果的衡量指标

  • 目的:评估聚类结果是否好坏,确立优化目标
  • 结论:簇内彼此相似,簇间彼此不同
  • 指标(是否用到样本均值):
    • 外部指标:JC指数、FMI指数、RI指数
    • 内部指标:DB指数,Dunn指数

小结

  • 没有最优的算法,只有最合适的算法。

参考书:周志华-学习>机器学习-西瓜书


http://www.niftyadmin.cn/n/5088645.html

相关文章

快手直播 弹幕采集,已解决风控问题

快手直播 弹幕采集效果演示: 目前已解决风控问题。

Elasticsearch 8.11 中的合并更少,摄取更快

作者:ADRIEN GRAND Elasticsearch 8.11 改进了管理索引缓存的方式,从而减少了段合并。 我们对 Elasticsearch 8.11 从索引缓存回收内存的方式进行了重大更改,这有助于减少合并开销,从而加快索引速度。 使用我们的日志跟踪&#x…

读书笔记——C++高性能编程(六)

第六章.并发和性能 阿姆达尔定律 介绍了阿姆达尔定律(Amdahls Law),这个定律的意义是“系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率”。具体的公式如下: 其中s0是程…

【C++初阶(一)】初识C++命名空间

📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…

基于深度学习网络的疲劳驾驶检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1疲劳检测理论概述 4.2 本课题说明 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 In_layer_Size [227 227 3]; img_size [224,…

在雷电模拟器9上安装magisk并安装LSPosed模块以及其Manager管理器(一)

环境:win10 64,雷电模拟器9.0.60(9),Android 9。 之前我都是用雷电模拟器版本4.0.78,Android版本7.1.2,为什么本篇要使用9了呢?先解答下这个问题。原因如下:经过我的测试,LSPosed不支…

快速了解什么是jwt及如何使用jwt

一、导言 1、什么是jwt及组成部分 JWT(JSON Web Token)是一种用于在网络应用间安全传递声明(claim)的开放标准。它由三部分组成:头部(Header)、载荷(Payload)和签名&…

GPU如何统计显存占用

GPU统计显存占用有两种方法: 方法1: 使用 watch -n 1 nvidia-smi 这个会2秒刷新一次,可以在一个终端运行程序另外一个终端执行这个然后看具体的显存变化【很费劲,而且可能一闪而过】 方法2: 要统计程序的最大显存…