机器学习-聚类算法

1.有监督学习与无监督学习

有监督:在训练集中给的数据中有X和Y,根据这些数据训练出一组参数对预测集进行预测

无监督:在训练集中给的数据只有X没有Y,根据X数据找相似度参数来对预测集进行预测

2.数据间的相似度

2.1距离相似度:

每一条数据可以理解为一个n维空间中的点,可以根据点点之间的相似度来评价数据间的相似度

欧氏距离:欧式距离就是两个点之间的直线距离

 曼哈顿距离:以二维空间为例,这种距离是计算两点之间的直角边距离,相当于城市中出租汽车沿城 市街道拐直角前进而不能走两点连接间的最短距离。

 闵可夫斯基距离:p=1的时候就是曼哈顿距离,p=2的时候就是欧式距离,P = 无穷,切比雪夫距离 ,哪个维度差值最大就是哪个差值作为距离。根据极限的思想p无穷大的时候x-y的值小的肯定远小于x-y大的值,那么就是最大的一个x-y占主要距离

余弦距离:高中都学过

 

3.Kmeans算法

1.聚类原理:

 将N个样本映射到K个簇中,每个簇至少有一个样本,先给定K个划分,迭代样本与簇的隶属关系,每次都比前一次好一些,迭代若干次就能得到比较好的结果。也就是先给你一堆球,但是不告诉你这些球的颜色,然后你自己去分,分成几种颜色是比较好的结果

2.Kmeans算法原理:

1.先随机生成k个初始的簇中心,也就是先随机挑几个球

2.逐个计算每个样本到这些簇中心的距离,将样本归属到距离最小的那个簇中心的簇中,也就是计算其他球到这些呗选择的球的距离,离那个球近就归那个球

3.每个簇内部计算平均值,跟新簇中心。也就是第二步选出来的k个簇,每一个簇中的每个球都计算它到其他球的距离的平均值,然后选择最小的一个球当作簇中心

一直迭代更新簇中心,直到不再改变 ,最后分好的k个簇就是分k种颜色的球的比较好的结果(这里只是局部最优,如果要全局最优需要迭代k的值,也就是要找到分多少种颜色才能让这些球每种颜色距离最远)

KMeans的优点:简单。缺点:对异常值敏感,对初始值敏感,对某些分布聚类效果不好。

4.Kmeans损失函数:

5.kmeans执行过程

6.Kmeans聚类算法k值的选择

样本点的轮廓系数:

 按照公式每一个样本点都有一个轮廓系数,那么该样本的总的轮廓系数为:

SC=(\sum_{i=1}^{n}si)/n  也就是每一个样本点的轮廓系数的平均值。而聚类总的轮廓系数SC是该聚类是否合理,有效的度量

所以,我们在迭代k值的时候不用盲目的去迭代了,而是要看这个聚类总的轮廓系数SC。我们将k从2开始迭代,一直迭代到SC沿下降趋势的时候就可以了,找到SC最大的时候的k的值,就是结果了

4.DBSCAN算法

1.算法介绍:

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类 方法)是一种基于密度的空间聚类算法。 该算法将具有足够密度的区域划分为簇,并在具有噪声的空间 数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合。

2.DBSCAN算法原理

1.先随机找一个点,通过欧式距离计算附近点的距离

2.如果距离小于阈值(自己定义的eps)就属于同一类

3.每一次迭代还有一个阈值,min_samples,也就是每次迭代最少要找到的同类数

4.将第二步找到的同类点进行2,3步迭代

5.当所有点都不满足第三步时,重新从第一步进行迭代,直到所有样本结束

动画详情地址:Visualizing DBSCAN Clustering (naftaliharris.com)

参数详细:

参数一eps: DBSCAN算法参数,即我们的eps邻域的距离阈值,和样本距离超过eps的样本点不在eps邻域内。默认 值是0.5.一般需要通过在多组值里面选择一个合适的阈值。eps过大,则更多的点会落在核心对象的eps 邻域,此时我们的类别数可能会减少, 本来不应该是一类的样本也会被划为一类。反之则类别数可能会 增大,本来是一类的样本却被划分开。

参数二min_samples: DBSCAN算法参数,即样本点要成为核心对象所需要的eps邻域的样本数阈值。默认值是5。一般需要通 过在多组值里面选择一个合适的阈值。通常和eps一起调参。在eps一定的情况下,min_samples过大, 则核心对象会过少,此时簇内部分本来是一类的样本可能会被标为噪音点,类别数也会变多。反之 min_samples过小的话,则会产生大量的核心对象,可能会导致类别数过少。

 参数与三metrics:点和点之间的距离计算公式,一般为欧式距离,当然也可以是曼哈顿距离等等

4.分层聚类:

1.算法介绍:

分层聚类输出层次结构,这种结构比平面聚类返回的非结构化聚类集更具信息性。 分层聚类法(hierarchical cluster method)一译“系统聚类法”。聚类分析的一种方法。其做法是开始时 把每个样品作为一类,然后把最靠近的样品(即距离最小的群品)首先聚为小类,再将已聚合的小类按 其类间距离再合并,不断继续下去,最后把一切子类都聚合到一个大类。

 

2.算法原理

 层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵 有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节 点。创建聚类树有自下而上合并和自上而下分裂两种方法。 我们着重看一下自底向上的合并算法:

 两个组合数据点间的距离:

第一种:Single Linkage 方法是将两个组合数据点中距离最近的两个数据点间的距离作为这两个组合数据点的距离。这 种方法容易受到极端值的影响。两个很相似的组合数据点可能由于其中的某个极端的数据点距 离较近而组合在一起。也就是两种球,我们以这两种球中距离最的两个球的距离当作这两种球的距离

第二种:Complete Linkage 的计算方法与Single Linkage相反,将两个组合数据点中距离最远的两个数 据点间的距离作为这两个组合数据点的距离。Complete Linkage的问题也与Single Linkage相 反,两个不相似的组合数据点可能由于其中的极端值距离较远而无法组合在一起。也就是两种球,我们以这两种球中距离最的两个球的距离当作这两种球的距离

 第三种:Average Linkage的计算方法是计算两个组合数据点中的每个数据点与其他所有数据点的距 离。将所有距离的均值作为两个组合数据点间的距离。这种方法计算量比较大,但结果比前两 种方法更合理。 我们使用Average Linkage计算组合数据点间的距离。下面是计算组合数据点(A,F)到(B,C)的距 离,这里分别计算了(A,F)和(B,C)两两间距离的均值。也就是两种球,我们以这两种球中所有球的距离的平均值当作这两种球的距离

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

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

相关文章

前端 Web 与原生应用端 WebView 通信交互 - HarmonyOS Next

基于鸿蒙 HarmonyOS Next 与前端 Vue 通信交互相关小结; DevEco Studio NEXT Developer Preview2 Vue js 两端相互拟定好协议后,通过前端页面的点击事件,将所需的数据传输给原生移动端组件方法中,处理后将消息回传至前端. 根据官方文档的案例尝试,但没成功 ... 后经过几经尝试…

随笔——预处理详解

目录 前言预定义符号#define#define定义常量#define定义宏 带有副作用的宏参数宏替换的规则宏和函数的对比#和###运算符##运算符 命名约定#undef命令行定义条件编译头文件的包含包含方式嵌套包含 其他预处理指令完 前言 之前我们在《随笔——编译与链接》中对预处理作了大致的…

【ARM Cache 及 MMU 系列文章 6 -- Cache 寄存器 CTR_EL0 | CLIDR | CCSIDR | CSSELR 使用详解 1】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Cache 常用寄存器Cache CSSELR 寄存器Cache CSSELR 使用场景Cache CSSELR 操作示例 Cache CLIDR 寄存器LoUU 介绍LoUU 使用 LoUIS 介绍CLIDR 使用 Cache CCSIDR 寄存器Cache CTR_EL0 C…

中科数安 |-公司办公透明加密系统,数据防泄漏软件

#数据防泄漏软件# 中科数安是一家专注于提供企业级数据防泄漏解决方案的公司,其办公透明加密系统是专为保护企业内部核心数据资料设计的。 PC地址:——www.weaem.com 该系统通过以下主要功能模块实现高效的安全防护: 文档透明加密&#xff1…

滴滴出行 大数据研发实习生【继任】

大数据研发实习生JD 职位描述 1、负责滴滴核心业务的数据建设,设计并打造适应滴滴一站式出行平台业务特点的数仓体系。 2、负责抽象核心业务流程,沉淀业务通用分析框架,开发数仓中间层和数据应用产品。 3、负责不断完善数据治理体系&#xff…

【数据结构】栈的应用

目录 0 引言 1 栈在括号匹配中的应用 2 栈在表达式求值中的应用 2.1 算数表达式 2.2 中缀表达式转后缀表达式 2.3 后缀表达式求值 3 栈在递归中的应用 3.1 栈在函数调用中的作用 3.2 栈在函数调用中的工作原理 4 总结 0 引言 栈(Stack)是一…

WPF视频学习-基础知识篇

1.简介WPF: C# 一套关于windows界面应用开发框架 2.WPF和winform的差别 ,(WPF比较新) 创建新项目使用模板: WPF使用.xaml后缀,双击可查看操作界面和设置代码,其文件展开之后中有MainWindow.xaml.cs为程序交互逻辑。…

linux笔记8--安装软件

文章目录 1. PMS和软件安装的介绍2. 安装、更新、卸载安装更新ubuntu20.04更新镜像源: 卸载 3. 其他发行版4. 安装第三方软件5. 推荐 1. PMS和软件安装的介绍 PMS(package management system的简称):包管理系统 作用:方便用户进行软件安装(也…

nginx mirror流量镜像详细介绍以及实战示例

nginx mirror流量镜像详细介绍以及实战示例 1.nginx mirror作用2.nginx安装3.修改配置3.1.nginx.conf3.2.conf.d目录下添加default.conf配置文件3.3.nginx配置注意事项3.3.nginx重启 4.测试 1.nginx mirror作用 为了便于排查问题,可能希望线上的请求能够同步到测试…

PyCharm QThread 设置断点不起作用

背景: 端午节回来上班第一天,不想干活,领导又再后面看着,突然想起一个有意思的问题,为啥我的程序在子进程QThread的子类里打的断点不好用呢?那就解决一下这个问题吧。 原因: 如果您的解释器上…

开发框架表单设计器办公效率高吗?

对于很多职场人来说,拥有一款可以提质、增效、降本的办公利器是大有裨益的。随着科技的进步和发展,低代码技术平台凭借可视化界面、易操作、好维护、高效率等多个优势特点,成为大众喜爱的办公利器。开发框架表单设计器是减少信息孤岛&#xf…

macbook本地部署 pyhive环境连接 hive用例

前言 公司的测试和生产环境中尚未提供基于Hive的客户端。若希望尝试操作Hive表,目前一个可行的方案是使用Python语言,通过借助pyhive库,您可以对Hive表进行各种操作。以下是一些示例记录供您参考。 一、pyhive是什么? PyHive是一…

从零到一建设数据中台(番外篇)- 数据中台UI欣赏

番外篇 - 数据中台 UI 欣赏 话不多说,直接上图。 数据目录的重要性: 数据目录是一种关键的信息管理工具,它为组织提供了一个全面的、集中化的数据资产视图。 它不仅记录了数据的存储位置,还详细描述了数据的结构、内容、来源、使…

细说ARM MCU的串口接收数据的实现过程

目录 一、硬件及工程 1、硬件 2、软件目的 3、创建.ioc工程 二、 代码修改 1、串口初始化函数MX_USART2_UART_Init() (1)MX_USART2_UART_Init()串口参数初始化函数 (2)HAL_UART_MspInit()串口功能模块初始化函数 2、串口…

批量申请SSL证书如何做到既方便成本又最低

假如您手头拥有1千个域名,并且打算为每一个域名搭建网站,那么在当前的网络环境下,您必须确保这些网站通过https的方式提供服务。这意味着,您将为每一个域名申请SSL证书,以确保网站数据传输的安全性和可信度。那么&…

面试-NLP八股文

机器学习 交叉熵损失: L − ( y l o g ( y ^ ) ( 1 − y ) l o g ( 1 − ( y ^ ) ) L-(ylog(\hat{y}) (1-y)log(1-(\hat{y})) L−(ylog(y^​)(1−y)log(1−(y^​))均方误差: L 1 n ∑ i 1 n ( y i − y ^ i ) 2 L \frac{1}{n}\sum\limits_{i1}^{n}…

【ai】openai-quickstart 配置pycharm工程

之前都是本地执行脚本【AI】指定python3.10安装Jupyter Lab环境为:C:\Users\zhangbin\AppData\Local\Programs\Python\Python310 参考之前创建的python工程 使用的是局部的私有的虚拟环境 pycharm给出的解释器 直接使用现有的,不new了 可以选择3.10 :可以选虚拟的:

Rust-02-变量与可变性

在Rust中,变量和可变性是两个重要的概念。 变量:变量是用于存储数据的标识符。在Rust中,变量需要声明其类型,例如: let x: i32 5; // 声明一个名为x的变量,类型为i32(整数)&#…

SpringCloud 前端-网关-微服务-微服务间实现信息共享传递

目录 1 网关获取用户校验信息并保存至请求头(前端-网关) 2 微服务获取网关中的用户校验信息(网关-微服务) 2.1 一般的做法是在公共的module中添加,此处示例为common 公共配置module中添加 2.2 定义拦截器 2.3 定义…

简单通用的系统安装、备份、还原方法,支持 ARM 系统【Ventory+FirePE+DiskGenius】

文章目录 0. 简介1. 制作 Ventory 启动盘1.1. 下载 Ventory1.2. 制作 Ventory 启动盘 2. 添加 FirePE 等系统镜像到启动盘2.1. 下载 FirePE2.2. 导出 .iso 系统镜像文件2.3. .iso 系统镜像文件添加至启动盘 3. 启动 FirePE 等系统镜像3.1. 在 bios 中选择启动盘启动3.2. 启动系…