专栏首页数据山谷机器学习|聚类(上)

机器学习|聚类(上)

01

聚类任务

对于训练样本的标记信息是未知的情况下,我们的目标就会变成通过对无标记训练样本的学习来揭示数据的内在性质及规律,我们把这样的学习方法称之为“无监督学习”,而在此类学习任务中,研究最多应用最广的就是“聚类”。

在聚类算法中,我们试图将数据集中的样本划分为若干个不相交的子集,每个子集称为一个“簇”。而对于样本来说,我们并不知道其内部存在的类别,所以我们分出的这些“簇”就可能对应着一些潜在的概念(类别),与分类算法的区别就在于,这些潜在的概念在之前我们是完全未知的。

一般的聚类结果展示如下图所示:

基于不同的学习策略,人们设计出多种类型的聚类算法,在学习算法之前,我们先来了解一下性能度量和距离运算。

02

性能度量

我们在之前的文章中了解过了分类算法的评估方式,对于聚类来说,我们有一些特殊的性能度量方式,让我们来了解一下。

对于聚类来说,我们把每个类别分成了相应的“簇”,直观上看我们希望“物以类聚”,而想要把很多“簇”聚的好,我们就希望“簇内的相似度”高且”簇间的相似度“低。

03

距离度量

对于函数 ,如果他表示一个距离的度量,我们就要满足一些基本性质:

04

K-Means聚类

聚类算法中,最典型最常用的算法就是K-Means(K均值)算法,让我们来了解一下K-Means的原理及流程。

K-Means算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。K-Means算法的流程如下:

05

K-Means++

06

elkan K-Means

07

Mini Batch K-means

08

K-Means小结

K-Means的主要优点有:

  • 原理比较简单,实现也是很容易,收敛速度快;
  • 聚类效果较优;
  • 算法的可解释度比较强;
  • 主要需要调参的参数仅仅是簇数k。

K-Means的主要缺点有:

  • K值的选取不好把握;
  • 对于不是凸的数据集比较难收敛;
  • 如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳;
  • 采用迭代方法,得到的结果只是局部最优;
  • 对噪音和异常点比较的敏感。

本文分享自微信公众号 - 数据山谷(BigDataValley),作者:二师兄

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习|聚类(下)

    接下来几周的时间,我们将会推出关于《西瓜书》读书笔记的连载文章,updating~

    数据山谷
  • 机器学习|支持向量机(SVM)

    了解SVM之前,先让我们来思考一个问题,有下图所示的两类样本点,我们需要找到一条直线(一个平面)来把这两类样本点区分开,在图中可以看到有很多条直线都满足条件,但...

    数据山谷
  • 机器学习|AdaBoost

    对于分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易的多,提升方法就是从弱学习算法出发,反复学习,得到一系...

    数据山谷
  • getclass removeclass

    河湾欢儿
  • 【玩转腾讯云】使用Serverless+飞书打造你的个性化消息提醒系统

    如果每件事都花时间去关注,那我们的时间必然会不够用,那有没有什么办法可以让这些消息集中起来并且及时推送呢?在这里我想向大家推荐一个解决方案,那就是使用Serve...

    用户1358150
  • 局部线性嵌入(LLE)原理总结

        局部线性嵌入(Locally Linear Embedding,以下简称LLE)也是非常重要的降维方法。和传统的PCA,LDA等关注样本方差的降维方法相...

    刘建平Pinard
  • 谱聚类

    谱聚类是一种基于图论的聚类算法,他的思想是将数据集转化称为无向带权图,然后将在各图划分成为两个或两个以上的最优子图,这些最优图的内部尽量相似,子图间的距离尽量远...

    opprash
  • “提需求的”与“拉SQL的”如何有效沟通

    这个题目改了又改,最终还是感觉这样写更具有可读性,毕竟一篇文章最终还是以能够读懂为初衷的,现阶段,各个公司里科技开发、数据编制成为必不可少的岗位,技术和业务的沟...

    用户2769421
  • 给共享主机的其他用户发消息

    想跑个程序,然后提示我资源耗尽。用nvidia-smi查看资源,发现全部被一个刚刚加入的用户用掉了。要想个办法通知一下。

    羽翰尘
  • 【腾讯云的1001种玩法】构建企业级应用环境之数据层面优化(二)

    在上一篇中我们讲到准备SQL基础环境改造,这一篇将继续讲述如何为应用提供高可用的底层数据层。

    李斯达

扫码关注云+社区

领取腾讯云代金券