当前位置: 首页 > news >正文

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

无监督学习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在喜欢运动的特征上相似,可以合并成更大的簇,然后依次向上合并成更大的簇。
整个过程是类似下面显示:
在这里插入图片描述

基于密度的聚类

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

http://www.lryc.cn/news/437558.html

相关文章:

  • IPv6路由基础
  • uniapp开发微信小程序 嵌套(uniapp开发/其他)H5,H5点击跳转微信小程序页面(通信
  • VM虚拟机器配置网络DHCP服务
  • 使用 jd.item_get API打造可读性商品介绍
  • java 通过文件下载地址读取文件内容
  • 打造古风炫酷个人网页:用HTML和CSS3传递笔墨韵味
  • vue 项目自适应 配置 px转rem 的插件postcss-pxtorem
  • 股票程序化交易是,第三方软件申请券商私有接口API的门槛
  • JDK8的一些主要的新特性
  • 40岁的java程序员,还有出路吗?
  • 【服务器】shell脚本之Docker创建nginx
  • 提取蛋白质复合体结构中组装体的变换矩阵
  • java程序员入行科目一之CRUD轻松入门教程(一)
  • OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践
  • 【GBase 8c V5_3.0.0 分布式数据库常用维护命令】
  • 破解AI生成检测:如何用ChatGPT降低论文的AIGC率
  • Python用MarkovRNN马尔可夫递归神经网络建模序列数据t-SNE可视化研究
  • setup函数子传父普通写法
  • seafaring靶场漏洞测试攻略
  • 简单示例,搞懂PowerBI的ALL(),ALLEXCEPT()和ALLSELECTED()的区别
  • Collection
  • 19章 泛型
  • 基于python+django+mysql+Nanodet检测模型的水稻虫害检测系统
  • 计算机网络27、28——Linux命令1、2
  • 【Python深度学习】逆强化学习(IRL):通俗揭开学习背后的奥秘
  • Linux:五种IO模型
  • ansible企业实战
  • 面向对象程序设计之模板进阶(C++)
  • 电巢科技携Ecosmos元宇宙产品亮相第25届中国光博会
  • Redis 入门 - 收官