Kmeans聚类算法简述

Kmeans聚类算法

1、概述

是一种无监督学习算法,根据样本之间的相似性将样本划分到不同的类别中,不同的相似度计算方式,会得到不同的聚类结果,常用的相似度计算方式有欧式距离。

目的是在没有先验条件知识的情况下,自动发现数据集中的内在结构和模式。

使用不同的聚类准则,产生的聚类结果不同。

2、算法分类

  • 根据聚类颗粒度分类:
    • 细聚类
    • 粗聚类
  • 根据实现方法分类:
    • K-means:根据质心分类,主要介绍K-means,通用普遍
    • 层次聚类:对数据进行逐层划分,直到达到聚类的类别个数
    • DBSCAN聚类是一种基于密度的聚类算法
    • 谱聚类是一类基于图论的聚类算法

3、相关api

导包:

sklearn.cluster.KMeans	# Kmeans依赖包
sklearn.datasets.make_blobs	# 生成数据

执行:

# 1.导入工具包
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
# calinski_harabaz_score CH系数,分数越高,聚类效果越好
from sklearn.metrics import calinski_harabasz_score  # 2.构建数据集 1000个样本,每个样本2个特征 4个质心蔟数据标准差[0.4, 0.2, 0.2, 0.2]
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()# 3.使用k-means进行聚类
y_pred = KMeans(n_clusters=3, random_state=22).fit_predict(x)# 4.展示聚类效果
plt.scatter(x[:, 0], x[:, 1], c=y_pred)
plt.show() 	# 5.模型评估, 使用CH方法评估 
print(calinski_harabasz_score(x, y_pred))

4、批判指标

(一)、SSE-误差平方和

(1)、定义

S S E = ∑ i = 1 k ∑ p ∈ C i ∣ p − m i ∣ 2 K 表示聚类中心的个数 C i 表示簇 p 表示样本 m i 表示簇的质心 SSE=\sum_{i=1}^k\sum_{p\in C_i}|p-m_i|^2\\ K表示聚类中心的个数\\ C_i表示簇\\ p表示样本\\ m_i表示簇的质心 SSE=i=1kpCipmi2K表示聚类中心的个数Ci表示簇p表示样本mi表示簇的质心

SSE的值越小,说明数据点越靠近它们的中心,聚类效果越好。

(2)、相关api
kmeans对象.inertia_	# 获得SSE的值

(二)、SC系数

(1)、定义

结合了聚类的凝聚度(cohesion)和分离度(separation)
S = b − a m a x ( a , b ) a :样本 i 到同一簇内其他点不相似程度的平均值 b :样本 i 到其他簇的平均不相似程度的最小值 S=\frac{b-a}{max(a,b)}\\ a:样本i到同一簇内其他点不相似程度的平均值\\ b:样本i到其他簇的平均不相似程度的最小值 S=max(a,b)baa:样本i到同一簇内其他点不相似程度的平均值b:样本i到其他簇的平均不相似程度的最小值

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

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

  • 计算所有样本的平均轮廓系数

  • 轮廓系数的范围为:[-1, 1],值越大聚类效果越好

(2)、相关api
silhouette_score(x, y_predict)	# 获取SC系数,传x和y预测值

(三)、CH系数

(1)、定义

CH 系数结合了聚类的凝聚度(Cohesion)和分离度(Separation)、质心的个数,希望用最少的簇进行聚类。
C H ( k ) = S S B S S W m − k k − 1 S S W = ∑ i = 1 m ∣ ∣ x i − C p i ∣ ∣ 2 C p i 表示质心 x i 表示某个样本 m 表示样本数量 k 表示质心个数 S S B = ∑ i = 1 k n j ∣ ∣ C j − X ‾ ∣ 2 c j 表示质心 X ‾ 表示质心与质心之间的中心点 n j 表示样本的个数 CH(k)=\frac{SSB}{SSW}\frac{m-k}{k-1}\\ SSW=\sum_{i=1}^m||x_i-C_{pi}||^2\\ C_{pi}表示质心\\ x_i表示某个样本\\ m表示样本数量\\ k表示质心个数\\ SSB=\sum_{i=1}^kn_j||C_j-\overline{X}|^2\\ c_j表示质心\\ \overline{X}表示质心与质心之间的中心点\\ n_j表示样本的个数 CH(k)=SSWSSBk1mkSSW=i=1m∣∣xiCpi2Cpi表示质心xi表示某个样本m表示样本数量k表示质心个数SSB=i=1knj∣∣CjX2cj表示质心X表示质心与质心之间的中心点nj表示样本的个数
SSW值是计算每个样本点到质心的距离再累加起来,表示的是簇内的内聚程度,SSW越小越好

SSB表示簇与簇之间的分离度,SSB越大越好

(2)、相关api
calinski_harabasz_score(x, y_predict)	# 获取CH系数,传x和y预测值

(四)、肘部法

肘部法通过SSE确定n_culsters的值

  • 对于n个点的数据集,迭代计算k(from 1 to n),每次聚类完成后计算SSE

  • SSE是会逐渐变小的,以为每个点都是在它所在簇的中心本身

  • SSE变化过程中会出现一个拐点,下降率突然变缓时认为时最佳n_culsters

  • 在决定什么时候停止训练时,肘形判据同样有效,数据通常有更多的噪音,在增加分类无法带来更多回报时,我们停止增加类别

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

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

相关文章

Java题集练习4

Java题集练习4 1 异常有什么用? 用来找到代码中产生的错误 防止运行出错2 异常在java中以什么形式存在? 异常在java中以类的形式存在,分为运行时异常和编译期异常,他们都在类Exception中3 异常是否可以自定义?如何自…

衡石分析平台系统分析人员手册-导入图表库图表

导入图表库图表​ 本文讲述在仪表盘中如何使用图表库图表,如果您还不了解图表库,请先点击链接了解它的功能和作用。 在数据集市中建立图表库后,分析人员可以在应用创作中引用图表库图表,快速的进行数据分析工作。 导入图表库图…

【建造&机械】木材运输车辆检测系统源码&数据集全套:改进yolo11-GhostHGNetV2

改进yolo11-SPPF-LSKA等200全套创新点大全:木材运输车辆检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.28 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片…

ubuntu 20.04编译驱动报gcc-12 not found错误

最近在自己安装的Ubuntu 系统上编译自定义驱动,发现无法编译.ko,错误如下: 按照如下操作,发现可以解决,记录下,主要是Ubuntu缺少g-12的包 安装包以后发现可以正常编译

什么是微服务中的反应性扩展?

大家好,我是锋哥。今天分享关于【什么是微服务中的反应性扩展?】面试题?希望对大家有帮助; 什么是微服务中的反应性扩展? Reactive Extensions 也称为 Rx。这是一种设计方法,我们通过调用多个服务来收集结果…

电脑程序变化监控怎么设置?实时监控电脑程序变化的五大方法,手把手教会你!

​在现代办公和信息安全领域,实时监控电脑程序变化是一项至关重要的任务。 无论是企业内网安全、员工行为审计,还是个人电脑的隐私保护,了解并设置有效的监控方法都是必不可少的。 本文将详细介绍五种电脑程序变化监控的方法,帮助…

DEVOPS: 集群伸缩原理

概述 阿里云 K8S 集群的一个重要特性,是集群的节点可以动态的增加或减少有了这个特性,集群才能在计算资源不足的情况下扩容新的节点,同时也可以在资源利用 率降低的时候,释放节点以节省费用理解实现原理,在遇到问题的…

华为原生鸿蒙操作系统的发布有何重大意义和影响:

#1024程序员节 | 征文# 一、华为原生鸿蒙操作系统的发布对中国的意义可以从多个层面进行分析: 1. 技术自主创新 鸿蒙操作系统的推出标志着中国在操作系统领域的自主创新能力的提升。过去,中国在高端操作系统方面依赖于外国技术,鸿蒙的发布…

outlook创建新账户时报错2603、2604的解决办法

全新的戴尔笔记本电脑,自带的Win11家庭版,安装ms office 2021也顺利完成。 但是奇怪的是,只有其中一台笔记本电脑,OUTLOOK无法添加新账户。 但是这个账号在WEB端登录正常,由于是新入职的员工,根据以往经验&…

Python小白学习教程从入门到入坑------第十八课 异常模块与包【上】(语法基础)

一、异常 在Python中,异常(Exception)是一种用于处理在程序运行时可能发生的错误情况的机制 异常允许程序在检测到错误时不是简单地崩溃,而是能够优雅地处理这些错误,可能包括记录错误信息、清理资源、或者向用户提…

QT界面开发--我的第一个windows窗体【菜单栏、工具栏、状态栏、铆接部件、文本编辑器、按钮、主界面】

经过前面的铺垫,今天我们就开始我们图形化界面之旅了,我们的第一个窗体主要包括:菜单栏、状态栏、工具栏、铆接部件、还有Qt提供的一些主窗体的API。 第一部分:主界面(QMainWindow) 当创建好项目后,我们直接运行&…

logdata-anomaly-miner:一款安全日志解析与异常检测工具

关于logdata-anomaly-miner logdata-anomaly-miner是一款安全日志解析与异常检测工具,该工具旨在以有限的资源和尽可能低的权限运行分析,以使其适合生产服务器使用。 为了确保 logdata-anomaly-miner的正常运行,推荐安装了python > 3.6的…

Qt 文本文件读写与保存

Qt 文本文件读写与保存 开发工具&#xff1a;VS2013 QT5.8 设计UI界面&#xff0c;如下图所示 sample7_1QFile.h 头文件&#xff1a; #pragma once#include <QtWidgets/QMainWindow> #include "ui_sample7_1QFile.h"class sample7_1QFile : public QMainWin…

中国人寿财险青岛市分公司:保障民生,传递关爱

中国人寿财险青岛市分公司以保障民生为使命&#xff0c;传递关爱与温暖。 在健康险领域&#xff0c;公司为市民提供全面的医疗保障。从重大疾病保险到普通医疗保险&#xff0c;满足不同客户的需求。通过与医疗机构合作&#xff0c;为客户提供便捷的就医服务和理赔服务&#xf…

Linux下的文件IO操作

目录 1.前导 1.1文件知识 1.2对比一下文件操作和重定向 1.2.1输入重定向 1.2.2追加重定向 1.3当前路径 1.4stdin stdout stderr 2.文件操作的系统调用接口 2.1.open()打开文件 2.1.2.flags参数 2.1.3.mode参数 2.1.3 umask()函数 2.2.write()向文件写入 ​编辑 2…

【Kaggle | Pandas】练习1:创造、阅读和写作

文章目录 1. 创建DataFrame2. 创建数据表3. 创建可变Series表4. 读取csv 数据集5. 保存csv 文件 1. 创建DataFrame 在下面的单元格中&#xff0c;创建一个 DataFrame fruits &#xff0c;如下所示&#xff1a; import pandas as pd # Your code goes here. Create a datafr…

Javaee---多线程(一)

文章目录 1.线程的概念2.休眠里面的异常处理3.实现runnable接口4.匿名内部类子类创建线程5.匿名内部类接口创建线程6.基于lambda表达式进行线程创建7.关于Thread的其他的使用方法7.1线程的名字7.2设置为前台线程7.3判断线程是否存活 8.创建线程方法总结9.start方法10.终止&…

Spring《声明式事务》

知识点&#xff1a; Spring 声明式事务 1.基于注解和配置类的Spring-jdbc环境搭建 1. 准备项目&#xff0c;pom.xml <dependencies> <!--spring context依赖--> <!--当你引入Spring Context依赖之后&#xff0c;表示将Spring的基础依赖引入了--> …

七款主流图纸加密软件强力推荐|2024年CAD图纸加密保护指南

在当今信息化的设计行业&#xff0c;保护CAD图纸的知识产权和数据安全变得尤为重要。随着越来越多的企业采用数字化设计和共享文件&#xff0c;如何防止CAD图纸被未经授权的访问和窃取成为了许多设计师和企业关注的焦点。为此&#xff0c;选用合适的图纸加密软件是保护CAD文件安…

《数据结构》学习系列——树(下)

系列文章目录 目录 树和森林的遍历树的遍历森林的遍历基本算法递归先根遍历树迭代先根遍历树树和森林的层次遍历 压缩与哈夫曼树文件编码扩充二叉树哈夫曼树和哈夫曼编码哈夫曼树的基本思路哈夫曼编码 树和森林的遍历 树的遍历 先根遍历&#xff1a;先访问树的根结点&#x…