【机器学习-四-无监督学习unsupervise learning-聚类算法简介】


上一节讲的无监督学习,但是很多人可能会很疑惑,没有目标,那算法是怎么学会该怎样分类的呢?今天就简介一下其中的聚类算法。

聚类

首先说明是什么聚类。聚类就是按照某种标准把一个数据集可以分割成不同的类或者簇,使得同一个簇内的数据对象的相似性尽可能的大,而不在同一个簇中的数据对象的差异性也尽可能的大。

聚类的过程

聚类的过程一般包括:

  1. 数据准备。特征标准化
  2. 特征选择。选择最有效的特征
  3. 特征提取。对选择的特征进行转换
  4. 聚类。一般是通过某种距离函数或者相似度系数等进行相似度度量,获取簇,下面会详细 介绍有哪些相似度度量方法
  5. 聚类结果评估。分析聚类结果,比如距离误差等

相似度度量方法

常用的相似度度量方法包括:

  1. 闵可夫斯基距离,也叫做欧式距离
  2. 杰卡德相似系数
  3. 余弦相似度
  4. 皮尔逊积矩相关系数
  5. 相对熵
  6. helinger距离

每一个都有相应的计算公式,可以自行搜索,此处不赘述。

聚类的方法

聚类从大分类上分为下面:
在这里插入图片描述

划分式

其中的代表是kmeans算法,算法的核心:
对于给定的K类目,先进行初始划分,然后改变样本和簇的隶属,使得每次改进之后的划分都比前面好,也就是所谓的簇内更相似
至于初始点,可以随机生成,也可以使用固定算法。

初始的时候数据是不分簇的,需要我们随机生成K个点,这里是用2个举例(图中蓝色和红色的点):
在这里插入图片描述
然后以这两个点计算样本中数据与这两个点的距离
在这里插入图片描述
距离这2个点中每个点更近的点,被归为一个簇,迭代结束就形成了两个簇。
然后取每个簇的中心点(均值点)再次作为K类的点,以样本中的数据再次计算与这K个点的距离,再进行分簇,然后再与上面的进行相同的迭代。
迭代到最后,簇中的样本基本不会再变化。

Kmeans算法优点就是:简单,能够快速处理大数据集,特别是当簇近似高斯分布时,效果更好。
Kmeans算法缺点:初值敏感,而且需要提前定义K,且要能够计算均值

层次聚类

层次聚类是对给定的数据集进行层次的分解,直到满足一定的条件。层次聚类又分为两种,一种是自底向上,一种是自顶向下。
自底向下是将每个单独的样本作为一个簇,然后合并这些簇,直到满足条件。另外一种则是相反的方向,逐步的细分。
举个例子:学校里的学生,比如学生A和B在喜爱篮球的特征更相似,合并为一个簇,然后A B和C在喜欢运动的特征上相似,可以合并成更大的簇,然后依次向上合并成更大的簇。
整个过程是类似下面显示:
在这里插入图片描述

基于密度的聚类

该算法的核心是定义一个密度函数,当两个样本在定义的密度函数值内,那我们就认为这两个样本是密度可达的,密度可达的样本可以分成一个簇。
在这里插入图片描述

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值