机器学习之聚类学习

聚类算法

  • 概念

    • 根据样本之间相似性,将样本划分到不同类别种,不同相似度计算方法,会得到不同聚类结果,常用相似度计算方法为:欧氏距离

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

    • 无监督学习算法

  • API

    sklearn.cluster.KMeans(n_clusters=8)

    • 参数:n_clusters:开始聚类中序数量

      • 整型状,缺省值=8,生成聚类数,即产生质心(centroids)数

    • 方法

      • estimator.fit(x)

      • estimator.predict(x)

      • estimator.fit_predict(x)

        计算聚类中心并预测每个样本属于哪个类别,相当于先调用fit(x,在调用predict(x)

  • KMeans算法实现流程

    • 先确定一个常数k,该常数意味最终聚类类别数

    • 随机选择k个样本作为初始聚类中心

    • 计算每个样本到k个中心聚类,选择最近聚类中心作为标记类别

    • 根据每个类别样本点,重新计算出新聚类中心点(平均值),若计算出的新中心与原中心点重叠,则停止聚类,否重新进行第2步过程,直到聚类中心不再变化

  • 评估指标

    • SSE(误差平方和)

      SSE越小,表示数据点越接近它们中心,聚类效果越好

      • "肘"方法(Elbow method) - k值确定

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

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

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

      • SSE变化过程中出现一个拐点,下降率突然变缓时即人为是最佳n_clusters值

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

      • SC (轮廓系数法)

        轮廓系数法考虑簇内的内聚程度(Cohesion),簇外的分离程度(Separation)

        • 计算过程

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

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

          • 根据下方公式计算该样本轮廓系数

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

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

      • CH (聚类效果评估-CH轮廓系数法)

        CH系数考虑簇内的内聚程度、簇外的离散程度、质心的个数

        • 类别內部数据距离平方和越小越好,类别之间距离平方和越大越好。聚类种类数越少越好

    • 简写:

      • 误差平方和SSE

        • 误差平方和值越小越好

        • 主要考量:簇内聚程度

      • 肘部法

        • 下降率突然变缓时即认为是最佳的k值

      • SC系数

        • 取值为[-1,1],其值越大越好

        • 主要考量:簇内聚程度、簇间分离程度

      • CH系数

        • 分数s高则聚类效果越好

        • CH达到的目的:用尽量少类别聚类尽量多的样本,同时获得较好的聚类效果

        • 主要考量:簇内聚程度、簇间分离程度、质心个数

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

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

相关文章

告别裸奔,聊聊主流消息队列的认证和鉴权!

大家好,我是君哥。 我们在使用消息队列时,经常关注的是消息队列收发消息的功能。但好多时候需要对客户端有一定的限制,比如只有持有令牌的客户端才能访问集权,不允许 Producer 发送消息到某一个 Topic,或者某一个 Top…

人脸识别——Webface-OCC遮挡人脸识别算法解析

1. 概述 自2019年被誉为人脸识别技术的元年,各地纷纷引入这项技术。然而,自2020年起,为了抵御冠状病毒(COVID-19)的全球传播,人们普遍开始佩戴口罩。众所周知,现有人脸识别模型在面对遮挡物&am…

Dalle2学习

Dalle2 mini有GitHub库并且有网页可以直接测试

网络之再谈体系结构

大家都知道的是网络的体系结构,现代软件常用的体系结构无非是TCP/IP协议栈,OSI因为实现复杂并且效率没有TCP/IP协议栈好,所以不用OSI,但是,最近在复习网络知识的时候,发现了一些奇怪的地方,那就…

C/C++连接MySQL

本章Gitee仓库地址:mysql连接基本操作 文章目录 1. mysql connect库2. mysql相关接口2.1 mysql_init()2.2 mysql_real_connect()2.3 mysql_query()2.4 mysql_store_result()2.41 mysql_num_rows2.42 mysql_num_fields2.43 mysql_fetch_row2.44 mysql_fetch_fields 2…

中国上市企业行业异质性数据分析

数据简介:企业行业异质性数据是指不同行业的企业在运营、管理、财务等方面的差异性数据。这些数据可以反映不同行业企业的特点、优势和劣势,以及行业间的异质性对企业经营和投资的影响。通过对企业行业异质性数据的分析,投资者可以更好地了解…

STM32系列-STM32介绍

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” STM32介绍 STM32介绍 ST:指的是意法半导体 M:指定微处理器 32:表示计算机处理器位数 ARM分成三个系列: Cortex-A&#xff1…

Python读取Excel表格文件并绘制多列数据的曲线图

本文介绍基于Python语言,读取Excel表格数据,并基于给定的行数范围内的指定列数据,绘制多条曲线图,并动态调整图片长度的方法。 首先,我们来明确一下本文的需求。现有一个.csv格式的Excel表格文件,其第一列为…

Sqoop的安装与测试

这里写目录标题 什么是Sqoop?Sqoop的安装与配置安装测试 什么是Sqoop? Sqoop就是hadoop和mysql的一个中间介质 , 作用就是可以将hadoop中的数据传到mysql中 , 或将mysql中的数据导入到hadoop中 Sqoop的安装与配置 安装 详细代码 //解压安装 [roothadoop soft]# tar -zxv…

【漏洞复现】用友NC registerServlet JNDI 远程代码执行漏洞(XVE-2024-10248)

0x01 产品简介 用友NC是 用友软件股份有限公司开发的一套企业级管理软件系统。它是一个基于互联网的多层应用系统,旨在为中大型企业提供全面、集成的管理解决方案。是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务…

SwiftUI中EnvironmentObject的使用(多界面共享数据)

SwiftUI的EnvironmentObject是一个强大的工具,它允许你在多个视图之间共享数据(使用一个可观察对象)。当你有一个复杂的视图层次结构,并且需要在没有直接连接的视图之间共享相同的可观察对象时,它特别有用。 我们之前传递数据主要是通过init…

SOLIDWORKS正版一年多少钱 2024版报价

SOLIDWORKS软件作为一款优秀的三维设计工具,以其强大的功能和优质的设计工具,为设计师们提供了前所未有的便利。SOLIDWORKS三维设计软件是一款多科学集成软件,它在产品开发和制造方面发挥着重要作用。 作为整个SOLIDWORKS产品开发解决方案套件…

SQL使用函数给多个分表添加同一字段

数据库中分表时,往往需要向多个分表中添加同一个字段,可以定义一个函数,每次调用这个函数向多个份表中添加同意字段。 1、创建函数示例: 在PostgreSQL中创建一个简单的函数 以下是一个在PostgreSQL中创建函数的简单示例&#x…

SEO之核心关键词(二)

初创企业或者需要建站的朋友看以下两篇文章,谢谢支持: 我给不会敲代码又想搭建网站的人建议新手上云 (接上一篇。。。。) 4、查询搜索次数 经过自己及朋友、同事的头脑风暴和检查竞争对手网站之后,再到Google 关键词…

用天工AI写文章,节约了8个人的成本

关注卢松松,会经常给你分享一些我的经验和观点。 当下AI工具最大的问题是什么? 是写的文章没有灵魂、没有感情、像机器人! 生成的文章官话连篇,人们一眼就看出是AI写的,这种文章怎么能给客户交差呢?自己这关都过不去,是吧? …

33 mid 55. 跳跃游戏

贪心算法&#xff1a; class Solution {public boolean canJump(int[] nums) {int leftBorder 0;for (int i 0; i <nums.length; i) {if(i<leftBorder){leftBorderMath.max(leftBorder,inums[i]);}if(leftBorder>nums.length-1){return true;}}return false;} }

欢乐钓鱼大师攻略大全,游戏自动辅助,钓鱼大全!

欢迎来到《欢乐钓鱼大师》的攻略大全&#xff01;本文将为你详细介绍游戏中的各类玩法、技巧和注意事项&#xff0c;帮助你快速掌握游戏精髓&#xff0c;成为一名真正的钓鱼大师。攻略内容包括新手鱼竿选择、锦标赛攻略、实用技巧、藏宝图玩法、箱子开法等多个方面。让我们一起…

生成式AI模型大PK——GPT-4、Claude 2.1和Claude 3.0 Opus

RAG(检索增强生成)系统的新评估似乎每天都在发布&#xff0c;其中许多都集中在有关框架的检索阶段。然而&#xff0c;生成方面——模型如何合成和表达这些检索到的信息&#xff0c;在实践中可能具有同等甚至更大的意义。许多实际应用中的案例证明&#xff0c;系统不仅仅要求从上…

Leecode热题100---二分查找---搜索插入位置

题目&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 nums 为 无重复元素 的 升序 排列数组 常规思路&#xff1a; class Solution { public:int f…

管理node——NVM安装及使用

NVM安装及使用 前言正文下载安装及配置一、卸载原有的node版本&#xff08;很重要&#xff01;&#xff01;&#xff01;&#xff09;- 卸载node- 清除npm相关文件 二、安装nvm&#xff0c;添加镜像1.nvm自定义安装位置2.nodejs版本存放位置- 未解决&#xff0c;无限踩坑- 已解…