十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录

第一章 【机器学习】初识机器学习

第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

第九章【机器学习】【监督学习】-循环神经网络 (RNN)

第十章【机器学习】【监督学习】-线性回归

第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

十五、【机器学习】【监督学习】- 神经网络回归 

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)


目录

系列文章目录

一、非监督学习

(一)、定义

(二)、训练流程

(三)、基本算法分类

 二、K-均值 (K-Means)

(一)、定义

(二)、基本概念

(三)、训练过程

(四)、特点

(五)、适用场景

(六)、扩展

三、总结


一、非监督学习

(一)、定义

        非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。

(二)、训练流程

        非监督学习的训练流程通常包含以下几个步骤:

  1. 数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。

  2. 模型选择:根据问题的性质选择合适的非监督学习算法。

  3. 参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。

  4. 模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。

  5. 结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的“正确答案”。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。

  6. 应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。

(三)、基本算法分类

        非监督学习算法可以大致分为以下几类:

  1. 聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。

  2. 降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。

  3. 关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。

  4. 异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。

  5. 自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。

  6. 生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。

        非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。


 二、K-均值 (K-Means)

(一)、定义

     K-Means是一种无监督学习的聚类算法,主要用于将数据集分割成K个互不相交的子集(或簇),每个子集中的数据点彼此相似,而不同子集间的数据点差异较大。K-Means算法通过最小化簇内数据点到簇中心(均值)的平方距离之和来达到聚类的目的。

(二)、基本概念

  1. 簇 (Cluster):数据集中形成的每个分组称为一个簇,算法的目标是创建K个这样的簇。
  2. 质心 (Centroid):每个簇的中心点,通常定义为该簇中所有数据点的平均位置。
  3. 距离度量:K-Means通常使用欧几里得距离来衡量数据点之间的相似性或差异性。
  4. 初始化:K-Means开始时需要随机选择K个数据点作为初始质心。
  5. 收敛条件:算法在质心不再发生显著变化或达到预定的迭代次数时停止。

(三)、训练过程

     K-Means算法是一种迭代型的聚类算法,其训练过程主要包括以下几个关键步骤:

1. 初始化
  • 选择K个初始质心:随机选取数据集中的K个点作为初始质心。这些点可以是随机选择的数据点,也可以是数据集中的随机位置。选择的方式会影响到后续迭代的速度和最终聚类的结果。
2. 分配数据点
  • 计算距离:对于数据集中的每一个点,计算其到所有K个质心的距离。通常采用欧几里得距离,但也可以使用其他距离度量,如曼哈顿距离。
  • 分配簇:将每个数据点分配给距离最近的质心所代表的簇。这意味着数据点将加入到与其最近的质心相同的簇中。
3. 更新质心
  • 计算新质心:对于每个簇,计算其所有数据点的平均值,这个平均值将成为新的质心。如果簇为空,则可能需要采取某种策略来处理,比如将其保持不变或重新初始化。
4. 判断收敛
  • 检查质心变化:比较新旧质心的位置,如果质心的位置变化小于某个阈值或者达到预设的最大迭代次数,则认为算法已经收敛,可以停止迭代。
  • 迭代:如果质心仍在显著变化,回到步骤2,重复分配数据点和更新质心的过程。
5. 结果输出
  • 输出聚类结果:一旦算法收敛,输出最终的K个质心以及每个数据点所属的簇。这构成了K-Means算法的最终输出。
扩展:处理特定情况
  • 空簇处理:在某些迭代中,可能会出现某个簇没有数据点的情况,这时需要决定如何处理,常见的做法是将最近的未分配数据点分配给该簇,或者重新随机选择一个新的质心。
  • 随机初始化的影响:由于K-Means对初始质心的选择很敏感,可以使用多次随机初始化和运行算法,然后选择最佳的聚类结果。例如,使用K-Means++初始化方法可以改善算法的性能。
性能考虑
  • 优化算法:在大数据集上,可以使用近似算法或优化技巧来加速K-Means,如Mini-Batch K-Means,它每次只使用数据集的一小部分来更新质心,从而减少计算成本。

     K-Means算法的训练过程是迭代和渐进的,直到满足收敛条件为止。在整个过程中,算法试图最小化每个数据点到其所属簇质心的距离平方和,以此来优化聚类结果。

(四)、特点

  • 简单快速:算法实现简单,计算效率高。
  • 局部最优:容易陷入局部最优解,结果受初始质心选择影响。
  • K值选择:需要事先确定K的值,这可能需要领域知识或试错。
  • 球形簇假设:假设簇是球形的,且大小相似,对于其他形状的簇效果不佳。
  • 敏感性:对异常值敏感,异常值可能显著影响质心的位置。

(五)、适用场景

  • 市场细分:在市场营销中对客户进行分类。
  • 图像压缩:用于颜色量化,减少图像中颜色的数量。
  • 文档分类:基于词频将文档分成不同主题的类别。
  • 推荐系统:通过对用户行为进行聚类,为用户推荐相似兴趣的内容。
  • 基因表达分析:在生物信息学中,对基因表达数据进行聚类分析。

(六)、扩展

     K-Means存在一些限制,因此有许多变种和扩展,例如:

  • K-Medoids:使用簇中实际的数据点作为质心,而不是平均值,更健壮于异常值。
  • Gaussian Mixture Models (GMM):使用概率模型,可以处理不同大小和形状的簇。
  • Fuzzy C-Means (FCM):允许数据点属于多个簇,具有隶属度的概念。
  • Mini-Batch K-Means:在大数据集上使用随机样本批次来更新质心,提高效率。
  • Bisecting K-Means:通过递归地将簇一分为二来寻找最优聚类。

三、总结

        K-Means及其变种在数据科学和机器学习中占据重要地位,广泛应用于各种数据聚类问题。

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

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

相关文章

[论文笔记] pai-megatron-patch Qwen2-CT 长文本rope改yarn

更改: # Copyright (c) 2024 Alibaba PAI and Nvidia Megatron-LM Team. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License a…

MongoDB常用命令大全,概述、备份恢复

文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…

怎么关闭 Windows 安全中心,手动关闭 Windows Defender 教程

Windows 安全中心(也称为 Windows Defender Security Center)是微软 Windows 操作系统内置的安全管理工具,用于监控和控制病毒防护、防火墙、应用和浏览器保护等安全功能。然而,在某些情况下,用户可能需要关闭 Windows…

深层神经网络示例

维度说明: A[L]、Z[L]:(本层神经元个数、样本数) W[L]:(本层神经元个数、上层神经元个数) b[L]:(本层神经元个数、1) dZ[L]:dA[L] * g’A&#xf…

【BUG】已解决:ModuleNotFoundError: No module named ‘PIL‘

已解决:ModuleNotFoundError: No module named ‘PIL‘ 目录 已解决:ModuleNotFoundError: No module named ‘PIL‘ 【常见模块错误】 错误原因: 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我…

时序数据库如何选型?详细指标总结!

工业物联网场景,如何判断什么才是好的时序数据库? 工业物联网将机器设备、控制系统与信息系统、业务过程连接起来,利用海量数据进行分析决策,是智能制造的基础设施,并影响整个工业价值链。工业物联网机器设备感知形成了…

《Techporters架构搭建》-Day02 集成Mybatis-plus

集成Mybatis-plus Mybatis-plus集成Mybatis-plus步骤小结 Mybatis-plus Mybatis-plus官网 MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它引入了一些新的特性&…

CSRF+XSS组合攻击实战

目录 0x01安装靶场 0x02分析功能点的请求接口,构造恶意请求 0x03寻找xss漏洞 0x01安装靶场 下载源码,解压到网站根目录 1.修改数据库配置文件 打开源码,进入到include目录下,打开数据库配置文件database.inc.php 将数据库的…

Template_C++

C模板 C提供了function template. function template:实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用的函数就称为函数模版。 是不是可以这样理解,函数模版就是给了一种功能&…

Keil开发IDE

Keil开发IDE 简述Keil C51Keil ARMMDK DFP安装 简述 Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公…

WebRTC音视频-环境搭建

目录 期望效果 1:虚拟机和系统安装 2:WebRTC客户端环境搭建 2.1:VScode安装 2.2:MobaXterm安装 3:WebRTC服务器环境搭建 3.1:安装openssh服务器 3.2:安装Node.js 3.3:coturn穿透和转发服务器 3.3.1&a…

全国数据智能与智慧政务行业产教融合共同体学术年会暨广东行政职业学院(广东青年职业学院)第一届“求是论坛”成功举办

为进一步深化现代职业教育体系建设理论研究,丰富行业产教融合共同体实践探索,7月13日,全国数据智能与智慧政务行业产教融合共同体学术年会暨广东行政职业学院(广东青年职业学院)第一届“求是论坛”在广东行政职业学院&…

【iOS】static、extern、const、auto关键字以及联合使用

目录 前言extern关键字static关键字const关键字 联合使用static和externstatic和constextern和const auto关键字 先了解一下静态变量所在的全局/静态区的特点:【iOS】内存五大分区 前言 上面提到的全局/静态区中存放的是全局变量或静态变量: 全局变量…

LabVIEW软件开发的雷区在哪里?

在LabVIEW软件开发中,有几个需要注意的雷区,以避免常见的错误和提高开发效率: 1. 不良的代码结构 雷区:混乱的代码结构和不清晰的程序逻辑。 后果:导致难以维护和调试的代码,增加了错误和故障的风险。 …

AI算法18-最小角回归算法Least Angle Regression | LARS

​​​ 最小角回归算法简介 最小角回归(Least Angle Regression, LAR)是一种用于回归分析的统计方法,它在某些方面类似于最小二乘回归,但提供了一些额外的优点。最小角回归由Bradley Efron等人提出,主要用于处理具有…

Leetcode双指针法应用

1.双指针法 文章目录 1.双指针法1.1什么是双指针法?1.2解题思路1.3扩展 1.1什么是双指针法? 双指针算法是一种在数组或序列上操作的技巧,实际上是对暴力枚举算法的一种优化,通常涉及到两个索引(或指针)从两…

【D3.js in Action 3 精译_020】2.6 用 D3 设置与修改元素样式 + 名人专访(Nadieh Bremer)+ 2.7 本章小结

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可视化最佳实践(下)1.4 本章小结 第二章…

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)

1. 引言 在现代软件开发流程中,持续集成(CI)和持续交付(CD)已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器,通过其强大的插件生态系统和灵活的配置选项&#xf…

Spring Boot项目中使用MyBatis Generator (MBG) 自动生成Mapper文件

Spring Boot项目中使用MyBatis Generator (MBG) 自动生成Mapper文件可以很大程度上减少编码。本文着重介绍如何在实战中使用MGB自动生成Mapper文件 1. 添加MyBatis Generator依赖 在pom.xml中添加必要的依赖 <dependency><groupId>org.mybatis.spring.boot</…

如何在Linux上部署Ruby on Rails应用程序

在Linux上部署Ruby on Rails应用程序是一个相对复杂的过程&#xff0c;需要按照一系列步骤进行。下面是一个基本的部署过程&#xff0c;涵盖了从安装所需软件到部署应用程序的所有步骤。 安装必要的软件 在部署Ruby on Rails应用程序之前&#xff0c;需要确保Linux系统上安装了…