当前位置: 首页 > news >正文

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

文章目录

  • K均值聚类
  • 密度聚类(DBSCAN)
  • 层次聚类
    • AGNES 算法
    • DIANA算法
  • 高斯混合模型聚类
  • 聚类效果的衡量指标
  • 小结

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指数

小结

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

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

相关文章:

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

文章目录 K均值聚类密度聚类(DBSCAN)层次聚类AGNES 算法DIANA算法 高斯混合模型聚类聚类效果的衡量指标小结 K均值聚类 步骤: Step1:随机选取样本作为初始均值向量。 Step2:计算样本点到各均值向量的距离,…...

智能垃圾桶丨悦享便捷生活

垃圾桶是人们日常生活所必不可少的必需品,它让生活中所产生的垃圾有了一个正确的存放地方。随着生产技术的迅速发展,垃圾桶也得以更新换代。由最初的简单式的圆筒式垃圾桶,到现在出现的感应式垃圾桶、智能语音控制垃圾桶,垃圾桶也…...

【数据结构】线性表(一)线性表的定义及其基本操作(顺序表插入、删除、查找、修改)

目录 一、线性表 1. 线性表的定义 2. 线性表的要素 二、线性表的基本操作 三、线性表的顺序存储结构 1. 定义 2. 顺序表的操作 a. 插入操作 b. 删除操作 c. 查找操作 d. 修改操作 e. 代码实例 一、线性表 1. 线性表的定义 一个线性表是由零个或多个具有相同…...

MyBatis的自定义插件

MyBatis的自定义插件 前置知识 MyBatis 可以拦截的四大组件 Executor - 执行器StatementHandler - SQL 语句构造器ParameterHandler - 参数处理器ResultSetHandler - 结果集处理器 自定义 MyBatis 插件 /*** 打印 sql 执行的时间插件*/ Intercepts(// 指定拦截器拦截的对象…...

生物制剂\化工\化妆品等质检损耗、制造误差处理作业流程图(ODOO15/16)

生物制剂、化工、化妆品等行业,因为产品为液体,产品形态和质量容易在各个业务环节发生变化,常常导致实物和账面数据不一致,如果企业业务流程不清晰,会导致系统大量的库存差异,以及财务难以核算的问题&#…...

vbv介绍

VBV模型 VBV即Video Buffer Verifier(视频缓冲区校验器)。 本质是encoder端的一个虚拟buffer,可以将VBV当做一个容量受限的管道,有一个上限容量值和下限容量值,在经过此管道的调节之后能限制编码码率在上限容量值和下限容量值之间。VBV对标NetEq中的那几个buffer(decoder b…...

Linux CentOS 8(网卡的配置与管理)

Linux CentOS 8(网卡的配置与管理) 目录 一、项目介绍二、命令行三、配置文件四、图形画界面的网卡IP配置4.1 方法一4.2 方法二 一、项目介绍 Linux服务器的网络配置是Linux系统管理的底层建筑,没有网络配置,服务器之间就不能相互…...

python -m pip install 和 pip install 的区别解析

python -m pip install 和 pip install 的区别解析 python -m pip install 使用了 -m 参数来确保以 Python 模块的形式运行 pip,适用于确保在不同的环境中正确使用 pip,这篇文章主要介绍了python -m pip install 和 pip install 的区别,需要的朋友可以参…...

深度解读js中数组的findIndex方法

js中数组有一个findIndex方法,这个方法是一个让人感到很困惑的方法。 首先来看看MDN对这个方法的解释:Array.prototype.findIndex() - JavaScript | MDN The findIndex() method of Array instances returns the index of the first element in an arra…...

ICML2021 | RSD: 一种基于几何距离的可迁移回归表征学习方法

目录 引言动机分析主角(Principal Angle)表征子空间距离正交基错配惩罚可迁移表征学习实验数据集介绍 实验结果总结与展望 论文链接 相关代码已经开源 引言 深度学习的成功依赖大规模的标记数据,然而人工标注数据的代价巨大。域自适应&…...

中国人民大学与加拿大女王大学金融硕士:在该奋斗的岁月里,对得起每一寸光阴

在这个快速变化的世界中,金融行业面临不断更新的挑战和机遇。为了应对这些挑战,中国人民大学与加拿大女王大学合作举办金融硕士项目,旨在培养具有国际视野、扎实的金融理论基础和实战经验的专业人才。 中国人民大学和加拿大女王大学金融硕士…...

Python基础教程:装饰器的详细教程

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、什么是装饰器 目的:给func()方法,增加一个功能,在fun()执行期间,同时把fun()执行速率机算出来 import time def func():print(嘻嘻哈哈)start_time time.time() ti…...

Apache poi xwpf word转PDF中文显示问题解决

原问题解决方法&#xff1a;https://github.com/opensagres/xdocreport/issues/161 POM依赖 <properties><java.version>1.8</java.version><poi.version>3.14</poi.version></properties><dependencies><dependency><gro…...

Gartner发布2024年十大战略技术趋势

今日&#xff0c;Gartner发布了2024年企业机构需要探索的十大战略技术趋势。这十大趋势包括&#xff1a;全民化的生成式&#xff1b;AI 信任、风险和安全管理&#xff1b;AI 增强开发&#xff1b;智能应用&#xff1b;增强型互联员工队伍&#xff1b;持续威胁暴露管理&#xff…...

在UniApp中使用uni.makePhoneCall方法调起电话拨打功能

目录 1.在manifest.json文件中添加权限 2. 组件中如何定义 3.如何授权 4.相关知识点总结 1.在manifest.json文件中添加权限 {"permissions": {"makePhoneCall": {"desc": "用于拨打电话"}} }2. 组件中如何定义 <template>…...

苹果手机怎么刷机?掌握好这个方法!

苹果手机以其优秀的性能与高颜值的设计赢得了一大批用户的喜爱。但是&#xff0c;当手机使用久了以后&#xff0c;难免会出现一些系统问题。在遇到运行不稳定、忘记锁屏密码、软件故障、频繁死机等情况时&#xff0c;我们可能需要对手机进行刷机来解决问题。那么&#xff0c;苹…...

最新ai创作系统CHATGPT系统源码+支持GPT4.0+支持ai绘画(Midjourney)

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…...

代码随想录算法训练营Day56|动态规划14

代码随想录算法训练营Day56|动态规划14 文章目录 代码随想录算法训练营Day56|动态规划14一、1143.最长公共子序列二、 1035.不相交的线三、53. 最大子序和 动态规划 一、1143.最长公共子序列 class Solution {public int longestCommonSubsequence(String text1, String text2…...

VsCode通过Git History插件查看某个页面的版本修改记录

首先需要安装插件Git History 方式一&#xff1a;通过 点击File History 查看某个文件变更&#xff1b;即通过commit的提交记录去查看某个文件的修改 方式二&#xff1a;通过点击选择toggle File Blame 查看当前页面每一行所有提交修改记录...

事件循环(渡一)

一、事件循环 浏览器有哪些进程和线程 浏览器是一个多进程多线程的应用程序&#xff0c;当启动浏览器后&#xff0c;会默认启动多个进程 可以在浏览器任务管理器中查看所有进程 其中最主要的进程有&#xff1a; 浏览器进程 主要负责界面展示&#xff0c;用户交互&#xff0c;…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

32位寻址与64位寻址

32位寻址与64位寻址 32位寻址是什么&#xff1f; 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元&#xff08;地址&#xff09;&#xff0c;其核心含义与能力如下&#xff1a; 1. 核心定义 地址位宽&#xff1a;CPU或内存控制器用32位…...

java+webstock

maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...

HarmonyOS-ArkUI 自定义弹窗

自定义弹窗 自定义弹窗是界面开发中最为常用的一种弹窗写法。在自定义弹窗中&#xff0c; 布局样式完全由您决定&#xff0c;非常灵活。通常会被封装成工具类&#xff0c;以使得APP中所有弹窗具备相同的设计风格。 自定义弹窗具备的能力有 打开弹窗自定义布局&#xff0c;以…...