机器学习-聚类算法

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.mfbz.cn/a/701601.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.NET C# 读写Excel及转换DataTable

目录 .NET C# 读写Excel及转换DataTable1. 依赖库2. Nuget包与版本3. ExcelUtil3.1 Excel sheet 转 DataTable3.2 Excel sheet 转 DataSet3.3 DataTable 转 Excel sheet3.4 DataSet 转 Excel3.5 私有方法 .NET C# 读写Excel及转换DataTable 1. 依赖库 using NPOI.HSSF.UserMo…

自动驾驶#芯片-1

概述 汽车是芯片应用场景之一,汽车芯片需要具备车规级。  车规级芯片对加工工艺要求不高,但对质量要求高。需要经过的认证过程,包括质量管理标准ISO/TS 16949、可靠性标准 AEC-Q100、功能安全标准ISO26262等。  汽车内不同用途的芯片要求…

肾合养生秘诀:告别手心热出汗的困扰

如果将我们的身体比作一支精心编排的交响乐团,那么各个器官便是乐团中不可或缺的乐器和乐手,而气血则如同乐团中的乐谱和指挥棒,引领着整个乐团的演奏。当乐谱缺失,指挥棒失灵,或者乐团的协作出现问题,某些…

【启明智显方案分享】ESP32-S3与GPT AI融合的智能问答嵌入式设备应用解决方案

一、引言 随着物联网(IoT)和人工智能(AI)技术的飞速发展,嵌入式设备正逐渐变得智能化。本解决方案是启明智显通过结合ESP32-S3的低功耗、高性能特性和GPT(Generative Pre-trained Transformer)…

仅需一款免费工具,就可以打造真实人设,无限生成虚拟AI网红

嘿,大家好,向阳。 很多粉丝问我,用AI做了这么多漂亮的美女,该如何用AI进行变现呢?今天我就教大家一个方法!曝光AI网红最好的平台就是小某书,在小某书上打造一个虚拟人物可以快速获取粉丝 。达到…

Mybatis Log Free

安装后重启 在 application.yml 配置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 选择效果

【一步一步了解Java系列】:探索抽象类与接口的秘密

看到这句话的时候证明:此刻你我都在努力 加油陌生人 个人主页:Gu Gu Study专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者:小闭…

为什么看了那么多资料还是无法理解Transformer啊???

要理解和熟悉一个新的技术/新模型,比较好的方式是通过以下框架结构来熟悉: 为什么:一个新模型的诞生,一般是解决了现有的模型不能解决的一些问题。因此需了解该技术提出的背景和创新点。 是什么:熟悉这个模型的内容和架构、训练…

pip 配置缓存路径

在windows操作平台,默认情况,pip下使用的系统目录 C:\Users\用名名称\AppData\Local\pip C盘是系统盘,如果常常使用pip安装会占用大量的空间很快就满,这时候就有必要变更一下缓存保存路径了。 pip 配置缓存路径: Win…

10 -每台机器的进程平均运行时间(高频 SQL 50 题基础版)

10 - 每台机器的进程平均运行时间 -- sum(if(activity_type end,timestamp ,-timestamp )) -- 如果activity_type为“end”,值为timestamp,为“start” 为-timestamp,所有数相加end-start -- count(distinct process_id),获取同一机器有几个进行id -- r…

详解 Flink Table API 和 Flink SQL 之流处理中的表

一、关系型表和流处理表对比 关系型表/SQL流处理表处理的数据对象字段元组的有界集合字段元组的无限序列查询(Query)对数据的访问可以访问到完整的数据输入无法访问所有数据,必须持续“等待”流式输入查询终止条件生成固定大小的结果集后终止…

内网环境MySQL操作非正常耗时问题排查小结

写在文章开头 早起笔者进行数据库操作实验时,会习惯性通过内网虚拟机安装MySQL,在完成部署并进行操作过程中发现MySQL操作无论是连接还是操作都非常耗时,结合之前SSH连接慢大抵推测MySQL连接操作耗时也是卡在DNS反向解析上,遂以此…

探索 doc 和 docx 文件格式的区别

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

docker启动

1. 将docker文件上传到服务器 2. docker load < alims-load 将docker 文件加载为镜像 3. docker run -itd --name alims -p 5000:5000 ailims:0.9.2 启动镜像 4. 查看容器docker ps 5. 查看连接 6. 其他 docker常用命令

《AI企业级知识库》-rasa爆改中文版本-实战!

阿丹&#xff1a; 之前有同学反应分享的东西有点概念化&#xff0c;表示不看着代码无法更深刻能理解。那么今天直接上代码&#xff01;&#xff01;&#xff01; 有两种方式使用自己训练好的nlu 1、rasa与nul分开启动&#xff0c;就是在rasa中的配置中配置好目标对应的nlu的服…

私人云盘(自动云同步)

一、项目简介 模仿小米的云服务&#xff0c;实现一个通过TCP实现的私人云盘&#xff0c;因为能力有限&#xff0c;所以只实现自动云同步这一个功能&#xff0c;具体可以分为三个小功能&#xff0c;即保持云端和终端数据一致、实现文件的上传与下载以及手动同步 二、涉及到的知…

【每日刷题】Day62

【每日刷题】Day62 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 852. 山脉数组的峰顶索引 - 力扣&#xff08;LeetCode&#xff09; 2. 2806. 取整购买后的账户余额…

WWDC 2024及其AI功能的引入对中国用户和开发者的影响

WWDC&#xff08;Apple Worldwide Developers Conference&#xff09;是苹果公司一年一度的重要活动&#xff0c;吸引了全球开发者的关注。WWDC 2024引入了许多新技术和功能&#xff0c;尤其是AI功能的加入&#xff0c;引发了广泛讨论。本文将深入探讨中国开发者如何看待WWDC 2…

Prisma数据库ORM框架学习

初始化项目 中文网站 点击快速开始,点击创建sql项目,后面一步一步往后走 这个博主也挺全的,推荐下 可以看这个页面初始化项目跟我下面是一样的,这里用得是ts,我下面是js,不需要额外的配置了 1.vscode打开一个空文件夹 2.npm init -y 初始化package.json 3.安装相关依赖 …

JAVA中验证码工具类的封装

1. 方案一 Java内部方法生成&#xff0c;不需要其它依赖 样式如图所示&#xff1a; package com.hyh.ad.common.utils;import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.File;…