机器学习中的聚类

目录

认识聚类算法

聚类算法API的使用

聚类算法实现流程

聚类算法模型评估 


认识聚类算法

聚类算法是一种无监督的机器学习算法。 它将一组数据分成若干个不同的群组,使得每个群组内部的数据点相似度高,而不同群组之间的数据点相似度低。常用的相似度计算方法有欧式距离法。

聚类算法在现实生活中的应用 

  • 用户画像,广告推荐,搜索引擎的流量推荐,恶意流量识别,图像分割,降维,识别
    离群点检测。

栗子:按照颗粒度分类 

聚类算法分类 

  • K-means聚类:按照质心分类
  • 层次聚类:是一种将数据集分层次分割的聚类算法
  • DBSCAN聚类是一种基于密度的聚类算法
  • 谱聚类是一种基于图论的聚类算法

聚类算法与分类算法最大的区别:

  • 聚类算法是无监督的学习算法
  • 分类算法属于监督的学习算法  

聚类算法API的使用

sklearn.cluster.KMeans(n_clusters=8) 

  • n_clusters:开始的聚类中心数量整型,缺省值=8,生成的聚类数
  • estimator.fit(x)
    estimator.predict(x)
    estimator.fit_predict(x)

使用KMeans模型数据探索聚类:

 

from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.metrics import calinski_harabasz_score
def dm04_kmeans():x, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]],cluster_std = [0.4, 0.2, 0.2, 0.2], random_state=22)plt.figure()plt.scatter(x[:, 0], x[:, 1], marker='o')plt.show()y_pred = KMeans(n_clusters=2, random_state=22, init='k-means++').fit_predict(x)plt.scatter(x[:, 0], x[:, 1], c=y_pred)plt.show()print(calinski_harabasz_score(x, y_pred))

聚类算法实现流程

  1. 随机选择 K 个样本点作为初始聚类中心
  2. 计算每个样本到 K 个中心的距离,选择最近的聚类中心点作为标记类别
  3. 根据每个类别中的样本点,重新计算出新的聚类中心点(平均值)

 

  • 计算每个样本到质心的距离;离哪个近,就分成什么类别。 
  • 根据每个类别中的样本点,计算出三个质心; 重新计算每个样本到质心的距离,直到质心不在变化 

当每次迭代结果不变时,认为算法收敛,聚类完成,K-Means一定会停下,不可能陷入
一直选质心的过程。 

聚类算法模型评估 

聚类效果评估 – 误差平方和SSE (The sum of squares due to error) 

质心的选择会影响图的松散程度:SSE = (−0.2) 2 + (0.4) 2 + (−0.8) 2 + (1.3) 2+ (−0.7) 2  = 3.02

  • SSE随着聚类迭代,其值会越来越小,直到最后趋于稳定。
  • 如果质心的初始值选择不好,SSE只会达到一个不怎么好的局部最优解 

聚类效果评估 – “肘”方法 (Elbow method) - K值确定 

  • "肘" 方法通过 SSE 确定 n_clusters 的值

对于n个点的数据集,迭代计算 k from 1 to n,每次聚类完成后计算 SSE,SSE 是会逐渐变小的,因为每个点都是它所在的簇中心本身。SSE 变化过程中会出现一个拐点,下降率突然变缓时即认为是最佳 n_clusters 值。 

聚类效果评估 – SC轮廓系数法(Silhouette Coefficient)

轮廓系数是一种用于评价聚类效果好坏的指标,它结合了聚类的内聚度和分离度。

  • 内聚度:反映了一个样本点与其所在簇内其他元素的紧密程度。内聚度是通过计算样本点到同簇其他样本的平均距离来衡量的,这个平均距离称为簇内不相似度。
  • 分离度:反映了一个样本点与不属于其簇的其他元素之间的紧密程度。分离度是通过计算样本点到其他簇中所有样本的平均距离中最小的那个值来衡量的,这个最小平均距离称为簇间不相似度。

对计算每一个样本 i 到同簇内其他样本的平均距离 ai,该值越小,说明簇内的相似程度越大。

计算每一个样本 i 到最近簇 j 内的所有样本的平均距离 bij,该值越大,说明该样本越不属于其他簇 j 

  • 内部距离最小化,外部距离最大化 

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

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

相关文章

采用java+B/S开发的全套医院绩效考核系统源码springboot+mybaits 医院绩效考核系统优势

采用java开发的全套医院绩效考核系统源码springbootmybaits 医院绩效考核系统优势 医院绩效管理系统解决方案紧扣新医改形势下医院绩效管理的要求,以“工作量为基础的考核方案”为核心思想,结合患者满意度、服务质量、技术难度、工作效率、医德医风等管…

Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 解锁版 (视…

【2024年5月备考新增】】 考前篇(4)《官方平台 - 考生模拟练习平台常用操作(三)》

9 如何绘制七格图 第一步:选择图形元件“网络计划”中的七格图元件,在绘图区点击 第二步:批量复制(先选中元件,按Ctrl+C, 再 Ctrl+V) 七格形状,有多少活动复制多少个 选中多个图形后,可点左上角的对齐工具进行对齐; 第三步:逐个标注每个活动的参数,使用箭线连接每个…

从XML配置角度理解Spring AOP

1. Spring AOP与动态代理 1.1 Spring AOP和动态代理的关系 Spring AOP使用动态代理作为其主要机制来实现面向切面的编程。这种机制允许Spring在运行时动态地创建代理对象,这些代理对象包装了目标对象(即业务组件),以便在调用目标对…

UVa1006/LA2238 Fixed Partition Memory Management

UVa1006/LA2238 Fixed Partition Memory Management 题目链接题意输入格式输出格式 分析AC 代码 题目链接 本题是2001年icpc世界总决赛的G题 题意 早期的多程序操作系统常把所有的可用内存划分成一些大小固定的区域,不同的区域一般大小不同,而所有区域的…

【cpp】并发多线程 Unique

1. unique_lock 何时锁定资源。 unique_lock lock1 时候&#xff0c;还没有锁住资源。 实际是后面&#xff0c;显式的出发&#xff1a; 比如&#xff0c; lock.lock, 或 std::lock(lk1,lk2), 或者条件变量CV.wait(mtx, []{!re})。 #include <iostream> #include <mu…

LVS + Keepalived 高可用群集

一、准备环境 主keepalived&#xff1a;172.168.1.11 lvs 备keepalived&#xff1a;172.168.1.12 lvs web1&#xff1a;172.168.1.13 web2&#xff1a;172.168.1.14 vip&#xff1a;172.168.1.100 客户机访问 关闭防火墙 二、配置 主keepalived 服务器 1. 安装…

[嵌入式系统-78]:RT-Thread:线程管理的基本原理与应用

目录 一、RTT线程的特点 二、RTT线程机制 2.1 线程的属性与线程控制块详解 2.2 线程的调度 2.3 线程的切换 2.5 系统线程 三、线程的调度机制 3.1 线程创建与删除 1、线程控制块 2、线程栈 3、入口函数 4、线程的创建方式 &#xff08;1&#xff09;静态线程初始化函…

【手势操作-复习前一天的内容-预习今天的内容 Objective-C语言】

一、昨天呢,我们学习的是这个,事件 1.事件这一块儿呢,iOS事件,分为三大类, 1)触摸事件 2)加速计事件 3)远程控制事件 2.这个里边呢,我们主要学习的是这个触摸事件,触摸事件里边,就是Touch,touchesBegan:方法里边,有一个touches参数,它是set类型的, 3.Set,…

nginx与php的通信方式

Nginx 和 PHP 之间的通信主要通过 FastCGI 协议进行&#xff0c;而FastCGI协议支持两种通信方式&#xff1a;Unix域套接字&#xff08;Unix Socket&#xff09;和TCP/IP网络套接字。下面是这两种通信方式的主要区别&#xff1a; Unix域套接字&#xff08;Unix Socket&#xff…

甲辰年四月初七思悟

甲辰年四月初七思悟 意懒青云天&#xff0c;情贪山水间。​ 为志凡尘炼&#xff0c;行路交际变。​ 日程分秒年&#xff0c;四时轮回现。 ​忧苦缘分面&#xff0c;嗔痴欲求践。

Redis:分布式系统

文章目录 认识RedisRedis和MySQLRedis的场景Redis的设计 分布式单机架构应用数据分离架构应用服务集群架构 认识Redis 在开始Redis学习前&#xff0c;要先认识一下Redis Redis的设计&#xff0c;是想要把它当做是一个数据库&#xff0c;一个缓存&#xff0c;或者说是一个消息…

C语言 | Leetcode C语言题解之第87题扰乱字符串

题目&#xff1a; 题解&#xff1a; struct HashTable {int key;int val;UT_hash_handle hh; };void modifyHashTable(struct HashTable** hashTable, int x, int inc) {struct HashTable* tmp;HASH_FIND_INT(*hashTable, &x, tmp);if (tmp NULL) {tmp malloc(sizeof(st…

Nginx - location中的匹配规则和动态Proxy

文章目录 官网location 规则详解动态Proxy使用多个 if 指令指定不同的 proxy_pass根据参数选择不同的 proxy_pass 官网 https://nginx.org/en/docs/http/ngx_http_core_module.html#location location 规则详解 Nginx的location指令工作原理如下&#xff1a; 位置匹配&#…

vs2019 c++ 对左值引用取地址得到的是谁的地址?

&#xff08;1&#xff09; 测试一下&#xff1a; 对左值引用取地址&#xff0c;返回的地址是其引用的变量的地址&#xff0c;而非自身的地址。 &#xff08;2&#xff09; 用反汇编看一下&#xff0c;为了代码容易看懂&#xff0c;改一下源代码&#xff0c;不使用 cout 这个复…

【格式控制】(中北大学-程序设计基础(2))

目录 题目 源码 结果示例 题目 从键盘输入一批数值&#xff0c;要求保留3位小数&#xff0c;在输出时上下行小数点对齐。 源码 #include <iostream>using namespace std;int main(void) {double a, b, c;cout << "请输入三个实数&#xff0c;中间用空格…

iOS 数据库升级

使用FMDB结合FMDBMigrationManager&#xff08;一个三方库&#xff09;的方式 1、首先自定义一个sql语句的类 #import#import"FMDBMigrationManager.h" interfaceMigration:NSObject (instancetype)initWithName:(NSString*)name andVersion:(uint64_t)version a…

阿里云OSS配置跨域及域名访问

1、配置跨域 进入对象存储OSS–>OSS存储桶–>数据安全–>跨域设置–>创建规则 2、配置跨域 Etag x-oss-request-id3、配置结果如下 4、数据源配置 切换到数据管理–>静态页面 配置根页面 保存结果如下 5、配置域名访问 绑定域名 添加txt记录 验证绑定 …

Unity 滚动视图(ScrollRect)使某个元素在可视范围内(滚动到某个元素)

在使用UGUI制作滚动视图的过程中&#xff0c;可能会遇到需求说&#xff0c;要定位到其中的某个元素&#xff0c;把它显示在Viewport可视范围内&#xff0c;这要怎么做呢&#xff1f;话不多说&#xff0c;上代码&#xff1a; namespace ZetanStudio.Extension {public static c…

git仓库使用

git仓库是会限制空间大小限制的 git网络库的容量限制_github仓库大小限制-CSDN博客 git是用于管理github的工具 电脑左下角搜索git打开GitBash.exe 进入到要下载到本地的目录 下载到本地的文件不要更改&#xff01; 如果要使用请务必把文件复制到别的空间去再在这个别的空间…