二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)

系列文章目录

第一章 【机器学习】初识机器学习

第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

第九章【机器学习】【监督学习】-循环神经网络 (RNN)

第十章【机器学习】【监督学习】-线性回归

第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

十五、【机器学习】【监督学习】- 神经网络回归 

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

十七、【机器学习】【非监督学习】- K-均值 (K-Means) 

十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)


目录

系列文章目录

一、非监督学习

(一)、定义

(二)、训练流程

(三)、基本算法分类

 二、均值漂移 (Mean Shift)

(一)、定义

(二)、基本概念

(三)、训练过程

1. 初始化

2. 计算偏移向量

3. 更新点的位置

4. 迭代

5. 应用于所有数据点

6. 形成聚类

7. 聚类后处理

8.注意事项

(四)、特点

(五)、适用场景

(六)、扩展

三、总结


一、非监督学习

(一)、定义

        非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。

(二)、训练流程

        非监督学习的训练流程通常包含以下几个步骤:

  1. 数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。

  2. 模型选择:根据问题的性质选择合适的非监督学习算法。

  3. 参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。

  4. 模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。

  5. 结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的“正确答案”。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。

  6. 应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。

(三)、基本算法分类

        非监督学习算法可以大致分为以下几类:

  1. 聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。

  2. 降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。

  3. 关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。

  4. 异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。

  5. 自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。

  6. 生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。

        非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。


 二、均值漂移 (Mean Shift)

(一)、定义

     均值漂移算法是一种无监督学习方法,最初由 Fukunaga 和 Hostetler 在 1975 年提出。它是一种基于密度的聚类算法,用于估计数据的模式(局部最大值),并且不需要事先指定聚类的数量。均值漂移算法在图像处理、计算机视觉、目标跟踪和数据挖掘等领域有着广泛的应用。

(二)、基本概念

     均值漂移算法的核心思想是利用数据点的密度来确定聚类中心。算法假设数据点在高密度区域附近聚集,并且这些高密度区域的中心代表了潜在的聚类中心。算法通过迭代地将数据点移动到其邻域内其他点的平均位置(质心)来实现这一点,从而逐渐“漂移”至高密度区域的中心。

(三)、训练过程

     均值漂移算法是一种迭代的、基于密度的聚类方法,它能够自动检测数据的高密度区域并确定这些区域的中心,即模式。下面是均值漂移算法的详细训练步骤:

1. 初始化
  • 选择一个数据点作为起始点,可以是数据集中的任意点,也可以是随机选择的点。
  • 确定带宽参数(bandwidth)h,这是一个核函数的尺度参数,决定了考虑邻域的范围。带宽的选择对算法的性能有很大影响,较小的带宽可能会导致过拟合,较大的带宽可能会忽略数据的细节。
2. 计算偏移向量
  • 对于选定的起始点,计算其邻域内所有点的加权平均位置,权重由核函数决定。常用的核函数是高斯核函数:​ ​其中 𝑥𝑖和 𝑥𝑗分别是数据点,∥𝑥𝑖−𝑥𝑗∥ 表示两点之间的距离。
3. 更新点的位置
  • 使用计算出的偏移向量来更新起始点的位置。偏移向量实际上是邻域内所有点的加权平均位置与当前点位置之间的差值。
  • 新位置 𝑥𝑛𝑒𝑤可以通过以下公式计算得出:​其中 𝑥x是当前点,𝑁是邻域内的数据点总数。
4. 迭代
  • 重复步骤2和3,直到点的位置变化小于一个预定义的阈值或达到最大迭代次数。这意味着点已经收敛到了高密度区域的中心。
5. 应用于所有数据点
  • 对数据集中的每一个数据点执行上述过程,直到所有点都收敛到各自高密度区域的中心。
6. 形成聚类
  • 当所有点都收敛后,将最终收敛到相同位置的点归为一个聚类。这通常意味着所有到达同一高密度区域中心的点都属于同一个模式或聚类。
7. 聚类后处理
  • 可以进一步对形成的聚类进行后处理,例如去除小的聚类、合并相邻的聚类或对聚类进行分类标签的分配。
8.注意事项
  • 均值漂移算法对带宽参数 h 的选择非常敏感。太小的 h 可能会导致算法检测到过多的模式,而太大的 h 可能会忽略数据的细节。
  • 在处理大规模数据集时,算法的计算成本可能会变得非常高。为了提高效率,可以使用KD树或其他数据结构来加速邻域点的查找,或者使用近似方法来减少计算量。

(四)、特点

  • 非参数性:均值漂移算法不需要预先设定聚类的数量,聚类数目由数据的分布自动决定。
  • 适应性:可以发现任意形状的聚类,因为它依赖于数据点的局部密度。
  • 高效性:对于大数据集,可以通过使用固定宽度的核函数和有效的数据结构(如KD树)来提高效率。
  • 多模态检测:均值漂移可以找到多个模式,即多个高密度区域的中心。

(五)、适用场景

  • 图像分割:用于图像的区域划分和对象检测。
  • 目标跟踪:在视频序列中跟踪移动对象。
  • 聚类分析:在没有先验知识的情况下对数据进行分组。
  • 异常检测:识别低密度区域的数据点,可能代表异常或噪声。

(六)、扩展

  • Kernel Adaptive Mean Shift (KAMS):通过动态调整核函数的宽度来适应数据的局部特性。
  • Mean Shift Variants for Video Background Subtraction:专门针对视频背景减除任务的均值漂移变种。
  • Fast Mean Shift Algorithm:优化算法的计算效率,尤其是在大规模数据集上的性能。

三、总结

     均值漂移算法因其灵活性和有效性,在许多领域都有重要的应用,尤其是在需要对数据进行无监督聚类和模式识别的场合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【支持语言模型和视觉语言模型的推理引擎sglang】

介绍 sglang是一个AI推理引擎,是一个专门为大语言模型和视觉语言模型设计的高效服务框架。 就像F1赛车需要顶级发动机一样,大语言模型也需要高效的推理引擎来发挥潜力。 而sglang正是这样一个性能怪兽。 根据LMSys组织的官方公告,最新的s…

Milvus × RAG助力快看多业务应用

快看介绍 快看漫画创办于2014年,集漫画阅读、创作互动、线下漫画沉浸体验、周边衍生品购买等体验于一体,是年轻人的一站式漫画生活方式平台。截止到2023年底,快看总用户超过3.8亿,在中国漫画市场渗透率超过50%。经过9年的创作者生…

Mybatis-plus自动生成MVC架构

系列文章目录 目录 系列文章目录 文章目录 前言 核心特性 一、mybatis-plus插件介绍 二、使用步骤 1.下载插件 2.读入数据 总结 前言 MyBatis-Plus(简称 MP)是一个基于 MyBatis 的增强工具包,旨在简化开发流程并提高开发效率。以下…

如何使用EXCEL访问WinCC中的实时数据实现报表

如果项目已经做好了,不想改动现有项目。那么可以使用 EXCEL 通过 OPC 方式访问 WinCC 项目的数据。预先定义好 EXCEL 表格样式,通过以下方式实现。通过以下步骤打开 EXCEL 中的 VB 编辑器 引用 WinCC 提供的 OPC 客户端 Control 控件: Siemens OPC DAAut…

H5+CSS+JS工作性价比计算器

工作性价比&#xff1d;平均日新x综合环境系数/35 x(工作时长&#xff0b;通勤时长—0.5 x摸鱼时长) x学历系数 如果代码中的公式不对&#xff0c;请指正 效果图 源代码 <!DOCTYPE html> <html> <head> <style> .calculator { width: 300px; padd…

【个人记录】pkg可以将Node.js应用打包为可执行文件

背景 之前按客户需求做了一个简易定时任务应用&#xff0c;完成后为方便客户使用需要打包为可执行文件。 pkg工具 pkg 是一个非常流行的工具&#xff0c;它能够将 Node.js 应用打包成独立的可执行文件。它支持多个平台&#xff0c;包括 Windows、macOS 和 Linux。 测试环境…

懒人精灵安卓版纯本地离线文字识别插件

目的 懒人精灵是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务&#xff0c;节省大量人工操作的时间。懒人精灵也包含图色功能&#xff0c;识别屏幕上的图像&#xff0c;根据图像的变化自动执行相应的操作。本篇文章主要讲解下更优秀的…

测试工作中常听到的名词解释 : )

背景 很多名称其实看字面意思都挺抽象的&#xff0c;有时看群里的测试大佬在不停蹦这类术语&#xff0c;感觉很高大上&#xff0c;但其实很多你应该是知道的&#xff0c;只不过没想到别人是这样叫它的。又或者你的主编程语言不是 Java&#xff0c;所以看不懂他们在讲啥&#x…

平均场理论下的维度约简公式与应用解析

平均场理论下的维度约简公式与应用解析 平均场理论的核心作用 平均场理论是一种处理复杂网络系统的方法&#xff0c;特别是在网络系统规模庞大时。它通过将耦合的多元微分方程组降至多个一元微分方程组&#xff0c;从而实现维度约简&#xff0c;极大地提高了计算效率。其基本…

C#高级:枚举(Enum)从索引、值到注释的完整使用技巧

目录 一、推荐的枚举写法 二、获取注释的封装代码 三、已知【枚举】&#xff0c;获取注释、索引 四、已知【索引】&#xff0c;获取枚举值、注释 五、已知【注释】&#xff0c;获取枚举值、索引 六、创建一个【枚举字典】&#xff0c;key索引&#xff0c;value(枚举值&am…

河道高效治理新策略:视频AI智能监控如何助力河污防治

一、背景与现状 随着城市化进程的加快&#xff0c;河道污染问题日益严重&#xff0c;对生态环境和居民生活造成了严重影响。为了有效治理河道污染&#xff0c;提高河道管理的智能化水平&#xff0c;TSINGSEE青犀提出了一套河污治理视频智能分析及管理方案。方案依托先进的视频…

gitee设置ssh公钥密码避免频繁密码验证

gitee中可以创建私有项目&#xff0c;但是在clone或者push都需要输入密码&#xff0c; 比较繁琐。 公钥则可以解决该问题&#xff0c;将私钥放在本地&#xff0c;公钥放在gitee上&#xff0c;当对项目进行操作时带有的私钥会在gitee和公钥进行验证&#xff0c;避免了手动输入密…

WEB攻防-通用漏洞-SQL 读写注入-MYSQLMSSQLPostgreSQL

什么是高权限注入 高权限注入指的是攻击者通过SQL注入漏洞&#xff0c;利用具有高级权限的数据库账户&#xff08;如MYSQL的root用户、MSSQL的sa用户、PostgreSQL的dba用户&#xff09;执行恶意SQL语句。这些高级权限账户能够访问和修改数据库中的所有数据&#xff0c;甚至执行…

Spring项目中发生log依赖冲突如何解决

异常信息 Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4分析 根据异常信息分析&#xff0c;可以看出是slf4j的实现有两个依赖&#xff0c;只需要移除log4j-slf4j-impl或log4j-to-slf4j其中一个库的依赖&…

如何合并电脑硬盘分区?轻松合并电脑硬盘分区

在日常使用电脑的过程中&#xff0c;我们有时需要对硬盘进行分区管理。然而&#xff0c;随着时间的推移&#xff0c;我们可能会发现原有的分区设置不再满足需求&#xff0c;这时就需要对分区进行调整&#xff0c;甚至合并分区。那么&#xff0c;我们该如何合并电脑硬盘分区呢&a…

攻坚克难岁月长,自主腾飞世界强——回顾近代中国数据库的发展与飞跃

前言 最近看了《中国数据库前世今生》纪录片&#xff0c;感触颇深&#xff0c;也是一直在思考到底该用何种方式起笔来回顾这段筚路蓝缕却又充满民族自豪感的历程。大概构思了一周左右吧&#xff0c;我想&#xff0c;或许还是应该从那个计算机技术在国内刚刚萌芽的年代开始讲起…

Arthas在线诊断案例实战整理

会一直持续更新。。。 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时…

SAPUI5基础知识19 - 视图嵌套(Nested Views)

1. 背景 SAPUI5 是一个用于构建企业级 Web 应用程序的 JavaScript 框架。它提供了丰富的 UI 控件和工具&#xff0c;帮助开发者创建复杂的用户界面。Nested Views 是 SAPUI5 中的一种设计模式&#xff0c;允许在一个视图中嵌套另一个视图。这种模式有助于模块化和重用代码&…

低代码如何加速数字化转型

数字化转型&#xff0c;正日益决定企业成功的关键。这里的一个关键因素是它可以以更快的速度和质量来实施技术计划。在当今瞬息万变的商业环境中&#xff0c;战略性地采用低代码平台对于旨在加快上市时间、增强业务敏捷性和促进跨团队无缝协作的首席技术官来说至关重要。日益增…

react中组件间的通信

一、父传子 1.代码展示 import React, { useState } from react;function SonPage(props){ // 子组件const {msg} propsreturn (<div>我是子组件 {msg}</div>) }function App() { // 父组件const [msgText,setMsgText] useState(父传子)return (<div classN…