简介:KMeans聚类算法

news2024/11/16 12:36:39

在机器学习中,无监督学习一直是我们追求的方向,而其中的聚类算法更是发现隐藏数据结构与知识的有效手段。聚类是一种包括数据点分组的机器学习技术。给定一组数据点,我们可以用聚类算法将每个数据点分到特定的组中。

理论上,属于同一组的数据点应该有相似的属性和/或特征,而属于不同组的数据点应该有非常不同的属性和/或特征。聚类是一种无监督学习的方法,是一种在许多领域常用的统计数据分析技术。

K-Means(K 均值)聚类

KMeans聚类与分类、序列标注等任务不同,聚类是在事先并不知道任何样本标签的情况下,通过数据之间的内在关系把样本划分为若干类别,使得同类别样本之间的相似度高,不同类别之间的样本相似度低(即增大类内聚,减少类间距)。

  1. 首先,我们选择一些类/组,并随机初始化它们各自的中心点。为了算出要使用的类的数量,最好快速查看一下数据,并尝试识别不同的组。中心点是与每个数据点向量长度相同的位置,在上图中是「X」。
  2. 通过计算数据点与每个组中心之间的距离来对每个点进行分类,然后将该点归类于组中心与其最接近的组中。
  3. 根据这些分类点,我们利用组中所有向量的均值来重新计算组中心。
  4. 重复这些步骤来进行一定数量的迭代,或者直到组中心在每次迭代后的变化不大。你也可以选择随机初始化组中心几次,然后选择看起来提供了最佳结果的运行。

K-Means 的优势在于速度快,因为我们真正在做的是计算点和组中心之间的距离:非常少的计算!因此它具有线性复杂度 O(n)。

另一方面,K-Means 有一些缺点。首先,你必须选择有多少组/类。这并不总是仔细的,并且理想情况下,我们希望聚类算法能够帮我们解决分多少类的问题,因为它的目的是从数据中获得一些见解。K-means 也从随机选择的聚类中心开始,所以它可能在不同的算法中产生不同的聚类结果。因此,结果可能不可重复并缺乏一致性。其他聚类方法更加一致。

K-Medians 是与 K-Means 有关的另一个聚类算法,除了不是用均值而是用组的中值向量来重新计算组中心。这种方法对异常值不敏感(因为使用中值),但对于较大的数据集要慢得多,因为在计算中值向量时,每次迭代都需要进行排序。

聚类属于非监督学习,K均值聚类是最基础常用的聚类算法。它的基本思想是,通过迭代寻找K个簇(Cluster)的一种划分方案,使得聚类结果对应的损失函数最小。其中,损失函数可以定义为各个样本距离所属簇中心点的误差平方和:

KMeans的核心目标是将给定的数据集划分成K个簇(K是超参),并给出每个样本数据对应的中心点。具体步骤非常简单,可以分为4步:

模型原理:K-means算法是一种无监督学习算法,用于聚类问题。它将n个点(可以是样本数据点)划分为k个聚类,使得每个点属于最近的均值(聚类中心)对应的聚类。

模型训练:通过迭代更新聚类中心和分配每个点到最近的聚类中心来实现聚类。

使用场景:适用于聚类问题,如市场细分、异常值检测等。

对于不同场景,我们的使用聚类的方法也有所不同:

一般场景下的聚类:「变量归一化 --> 分布转换 --> 主成分 --> 聚类」
发现异常境况的聚类:「变量归一化 --> 主成分 --> 聚类」

聚类结果好坏不是简单的看统计指标就可得出明确的答案。统计指标是在所有的变量都符合某个假设条件才能表现良好的,而实际建模中很少能达到那种状态;聚类的结果要做详细的描述性统计,甚至作抽样的客户访谈,以了解客户的真实情况,所以让业务人员满足客户管理的目标,是聚类的终极目标。

示例代码(使用Python的Scikit-learn库构建一个简单的K-means聚类器):

# -*- coding: utf-8 -*-
"""
Created on Tue Mar 19 16:50:22 2024

@author: admin
"""
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成模拟数据集  
X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

# 创建K-means聚类器对象,K=4  
kmeans = KMeans(n_clusters=4)

# 训练模型  
kmeans.fit(X)

# 进行预测并获取聚类标签  
labels = kmeans.predict(X)

# 可视化结果  
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.show()

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

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

相关文章

SQL Server 2008R2 日志文件大小设置及查询

SQL Server 2008R2 建立数据库存在日志无限增长问题,造成磁盘内存不足。本文解决这个问题,如下: 1.设置日志文件的最大大小 USE master; GO ALTER DATABASE [D_total] MODIFY FILE (NAME D_total_log, -- 日志文件的逻辑名称MAXSIZE 200…

LeetCode Python - 69. x 的平方根

目录 题目描述解法运行结果 题目描述 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.…

稀碎从零算法笔记Day21-LeetCode:单词规律

题型:哈希表、字符串 链接:290. 单词规律 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如&am…

先进电机技术 —— 何为轴电压?

一、特定场景举例 长线驱动指的是在电动机与变频器之间存在较长的连接电缆,尤其是在大型工业应用中,电机可能远离变频器几十米甚至上百米。这种情况下,变频器通过长线向电动机传输功率时,可能会加剧电机轴电压和轴电流的产生&…

Flutter-仿携程首页类型切换

效果 唠叨 闲来无事,不小心下载了携程app,还幻想可以去旅游一番,奈何自己运气不好,自从高考时第一次吹空调导致自己拉肚子考试,物理,数学考了一半就交卷,英语2B铅笔除了问题,导致原…

ensp静态路由综合实验(一)

实验拓扑: 实验目的: 1、R6为ISP,接口IP地址均为公有地址,该设备只能配置IP地址,之后不能再对其进行任何配置; 2、R1-R5为局域网,私有IP地址192.168.1.0/24,请合理分配;…

【图解物联网】第7章 物联网与可穿戴设备

7.1 可穿戴设备的基础 顾名思义,可穿戴设备就是指穿戴在身上的设备,因此,比起单独使用前面说的那些设备,可穿戴设备能够令服务更加贴近人们的生活。如果你想率先实现物联网服务,那么就可以选择使用可穿戴设备。 …

java业务需求——爆金币

假设我们要模拟金铲铲中塔姆的爆金币需求,我们该如何实现该需求呢? 所以假设下面具体场景: 1.在每一回合的15s中,该棋子不断被攻击。 2.该棋子被攻击时有十分之三的概率的会爆出一个金币, 3.每被攻击10次必爆一个金币…

HAL STM32G4 +TIM1 3路PWM互补输出+VOFA波形演示

HAL STM32G4 TIM1 3路PWM互补输出VOFA波形演示 ✨最近学习研究无刷电机驱动,虽然之前有使用过,但是在STM32上还没实现过。本文内容参考欧拉电子例程,从PWM驱动开始学习。 欧拉电子相关视频讲解: STM32G4 FOC开发实战—高级定时器发…

【光标精灵】让您享受鼠标皮肤多样化快捷更换

鼠标作为我们日常使用频率最高的“小伙伴”,扮演着至关重要的角色。尤其是在女生群体中,对于打造一个个性化、可爱的电脑桌面和软件界面的需求日益增长。然而,尽管电脑默认提供了一些可更换的光标图案,但仍显得有些单调和呆板。想…

Java练习题目3:输入一个学生的5门课成绩及对应的学分,计算该同学的加权平均分(WeightedAverageScore3)

每日小语 我们没有意识到惯用语言的结构有多大的力量。可以说,它通过语义反应机制奴役我们。 ——阿尔弗雷德科日布斯基 思考 输入5门课成绩,学分,加权平均分公式 [(课程A成绩*课程A学分)(课程成绩B*课程…

GitHub gpg体验

文档 实践 生成新 GPG 密钥 gpg --full-generate-key查看本地GPG列表 gpg --list-keys关联GPG公钥与Github账户 gpg --armor --export {key_id}GPG私钥对Git commit进行签名 git config --local user.signingkey {key_id} # git config --global user.signingkey {key_id} git…

C语言 自定义类型:结构体

目录 前言 一、结构体类型 1.1 结构体的声明 1.2 结构体变量的创建和初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 二、结构体的对齐 2.1 对齐规则 2.2 内存对齐的原因 2.3 修改默认对齐数 2.4 结构体传参 三、结构体实现位段 3.1 位段的内存分配 3.2 段的跨平…

打造校园环保展厅,让环保知识触手可及,环保意识自然生成!

环保问题是当下备受关注的话题,各类垃圾分类、绿色环保知识的推广宣传,也让社会公众开始加强对环境保护的意识,同时越来越多的学校也开始加强对学生环保理念的培养,并通过建设校园环保展厅来宣传绿色环保知识,引导学生…

使用专属浏览器在国内直连GPT教程

Wildcard官方推特发文说他们最近推出了一款专门为访问OpenAI设计的浏览器。 根据官方消息,这是一款专门为访问OpenAI优选网络设计的浏览器,它通过为用户提供专用的家庭网络出口,确保了快速、稳定的连接。 用这个浏览器的最大好处就是直接用浏…

免费PDF转换和编辑工具 PDFgear 2.1.4

PDFgear是一款功能强大的 PDF 阅读及转换软件。 它支持多种文件格式的转换和编辑,同时还提供了丰富的功能模块,如签名、表单填写等,方便用户进行多样化的操作。 该软件界面简洁美观,操作简单易懂,适合不同层次的用户…

Spark-Scala语言实战(3)

在之前的文章中,我们学习了如何在来如何在IDEA离线和在线安装Scala,想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-Scala语言实…

SpringBoot 集成支付宝支付,看这篇就够了!

SpringBoot 集成支付宝支付,看这篇就够了! 1.进入支付宝开发平台—沙箱环境 2.点击沙箱进入沙箱环境 3.进入沙箱,配置接口加签方式 在沙箱进行调试前需要确保已经配置密钥/证书用于加签,支付宝提供了 系统默认密钥 及 自定义密钥 两种方式进行配置。这里我采取的是默认方…

现行有效外汇管理主要法规目录(截至2023年12月31日)

现行有效外汇管理主要法规目录 (截至 2023 年 12 月 31 日) 一、综合(27 项) (一)基本法规(9 项) 1 中华人民共和国外汇管理条例 国务院令第 532 号 2 个人外汇管理办法 中国…

只看到真人版《武庚纪》的顶级特效?那你亏大了!

“一不留神就看6集”,一看一个不吱声,相信看过《烈焰》(原名:武庚纪)的观众或多或少都有和笔者一样的感受。 与其他国产剧不同的是,《烈焰》改编自动画《武庚纪》,“漫改”让他的人物装造更贴近…