目录

1.概论

2.聚类问题

(1)聚类问题的定义

(2)聚类的依据(距离的定义)

3.基于原型的聚类方法(k-均值聚类)

(1)k-均值聚类的基本思想和基本步骤

(2)k-均值聚类的特点

4.基于密度的聚类方法DBSCAN

5.基于层次的聚类方法(AGNES聚类方法)

6.python代码

(1)k-均值聚类

(2)DBSCAN

(3)AGNES


1.概论

之前几类数据挖掘的目的是挖掘出样本数据与标签之间的关系,因此这种学习模型被称为监督学习。

聚类分析则是另一种学习模式,它处理的数据没有标签,因此也称之为无监督学习方法

聚类分析是指根据数据内部的相互关系将数据样本划分为不同的集合。

2.聚类问题

(1)聚类问题的定义

聚类分析的结果是将相似的样本划分在同一个簇中差别较大的样本划分到不同的簇

(2)聚类的依据(距离的定义)

对样本进行聚类的依据是样本之间的相似度,样本之间的相似度通常使用样本距离来衡量

使用不同的距离定义对聚类结果有很大影响。常见的距离定义有:

1.闵可夫斯基距离

2.曼哈顿距离

3.欧几里得距离

4.加权闵可夫斯基距离

5.余弦距离

3.基于原型的聚类方法(k-均值聚类)

常见的聚类方法主要有三种:基于原型的聚类方法、基于密度的聚类方法和基于层次的聚类方法

基于原型的聚类方法:所谓原型一般是指簇的中心点,簇中所有的样本都与这个中心点具有相似的特征。

k-均值聚类:k-均值聚类是一种典型的基于原型的聚类方法,它假设所有的样本可以划分为k个簇,每个样本属于当中的某个簇。

(1)k-均值聚类的基本思想和基本步骤

k-均值聚类的基本思路是:给定一个样本集D={x1,x2,......,xn},寻找一个分为k个簇的簇划分C={C1,C2,......,Cn},使得所有样本点到它所在簇质心距离的误差平方和(sum of squared error,SSE)最小。

基本步骤:

1.初始化质心

2.样本分簇

3.计算簇的质心

4.判断结束条件

(如下图所示,即为k-均值聚类过程)

(2)k-均值聚类的特点

在进行k-均值聚类时要注意以下几点:

1.k的选取(使用不同的k值进行聚类,最后结果是不一样的)

2.随机产生的初始化质心(为避免初始化质心带来效果不好的聚类结果,可以多生成几组初始化质心,产生几组聚类结果)

3.计算过程中的空簇(在聚类过程中可能出现某些样本点不属于任何簇的情况,这种就叫做空簇,为避免空簇对聚类结果造成影响,我们需要为空簇指定一个质点,使其不为空)

4.离群点

5.异性数据

4.基于密度的聚类方法DBSCAN

(面向噪声的基于密度的空间聚类)

聚类方法基于一组邻域参数(邻域半径,邻域密度阈值)来刻画样本分布的紧密程度,并以此作为分簇依据。

过程:

1.设置邻域半径和邻域密度阈值

2.计算样本点的种类(将数据集中的所有样本分别标记为核心点、边界点或噪声点)

3.聚类(首先将核心点各自成簇,然后将距离小于邻域半径的核心点合并为一个簇,将边界点合并到与之相关联的核心点的簇中,噪声点不聚集为任何簇)

特点:无需提前制定聚类问题簇的个数,与k-均值聚类方法相比,DBSCAN聚类方法得到的簇的形状不再限定于球形,可以是任意分布的形状。

5.基于层次的聚类方法(AGNES聚类方法)

基于层次的聚类方法是对数据集基于不同层次进行簇的划分。基于层次的聚类方法有两类,即自底向上的凝聚方法和自顶向下的分裂方法。

AGNES是一种采用自底向上凝聚策略的层次聚类方法。它首先将数据集中每个样本点作为一个个体簇,然后合并最接近的两个簇,直到达到预设的簇数目。

特点:适用于任意形状的聚类,相较于k-均值聚类,他受到离群点的影响较小。

6.python代码

(1)k-均值聚类

from sklearn.cluster import KMeans
kmeans=KMeans(n_clusters=4)
# 对数据集X进行聚类
kmeans.fit(X)
# kmeans.labels_输出数据集X的每个样本的分簇结果
y=kmeans.labels_
# kmeans.cluster_centers_输出聚类后簇的中心点(质点)的位置
centers=kmeans.cluster_centers_# labels是聚类模型对新数据X1中每个样本的预测分簇结果
labels=kmeans.predict(X1)

参数说明:

n_clusters为拟聚类

(2)DBSCAN

from sklearn.cluster import DBSCAN
dbscan = DBSCAN(eps=0.3,min_samples=5)
dbscan.fit(X)
y=dbscan.labels_

参数说明:

esp是邻域半径,min_samples是邻域密度阈值

(3)AGNES

from sklearn.cluster import AgglomerativeClustering
agg=AgglomerativeClustering(n_clusters=4,linkage='single')
agg.fit()
y=agg.labels_

参数说明:

n_clusters为拟聚类的簇数,linkage为基于哪种簇间距离进行聚类。(‘single’表示单链接,‘complete’表示全链接,‘average’表示均链接)

数据挖掘学习——聚类分析(k-均值聚类、DBSCAN、AGNES)、python代码相关推荐

  1. Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法

    聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心 ...

  2. 计算机视觉与深度学习 | 使用K均值聚类实现基于颜色的分割(matlab版)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  3. python图像分割_基于K均值聚类算法的Python图像分割

    1个K均值算法 实际上,K-means算法是一种非常简单的算法,与算法思想或特定实现无关. 通过以一定方式测量样本之间的相似度,并迭代更新聚类中心,它属于无监督分类. 当聚类中心不再移动或移动差异小于 ...

  4. k均值聚类 图像分割实战 python

    算法源于西瓜书309页介绍的约束种子k均值算法 1.事先标注好一部分数据: 绿色部分是前景 对应的rgb是[0,255,0] 蓝色部分是背景 rgb[0,0,255] 2. 根据标注好的数据,遍历原始 ...

  5. Python——KMeans(k均值聚类)实战(附详细代码与注解)

    开始之前 各位朋友周末好,今天博主小码将开车≥Ö‿Ö≤为大家用代码实战讲解KMeans聚类,请大家坐稳了≡(▔﹏▔)≡.作为机器学习的十大经典算法之一,聚类的相关现实应用非常之广,如图像分割,文本分类 ...

  6. 基于改进人工蜂群算法的K均值聚类算法(Matlab代码实现)

  7. 聚类分析 | MATLAB实现k-Means(k均值聚类)分析

    目录 聚类分析 | MATLAB实现k-Means(k均值聚类)分析 k-均值聚类简介 相关描述 程序设计 学习小结 参考资料 致谢 聚类分析 | MATLAB实现k-Means(k均值聚类)分析 k ...

  8. K均值聚类关于初始聚类中心的探讨

    摘要:进入二十一世纪以来,科学技术的不断发展,使得数据挖掘技术得到了学者越来越多的关注.数据挖掘是指从数据库中发现隐含在大量数据中的新颖的.潜在的有用信息和规则的过程,是一种处理数据库数据的知识发现. ...

  9. python机器学习库sklearn——k均值聚类

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 k均值聚类的相关的知识内容可以参考 http://blog.csdn.net/luanpeng825485697/article/de ...

最新文章

  1. 《用Python进行自然语言处理》第6章 学习分类文本
  2. rsync同步操作 inotify实时同步 cobbler装机平台 DNS主从结构
  3. weblogic 安装教程
  4. 高斯混合模型 GMM
  5. iOS 层层推进实现代理模式
  6. Android基础知识学习
  7. 力扣100. 相同的树(JavaScript)
  8. 重写GridView支持数据筛选和自动排序功能
  9. 网站排障的一些小命令
  10. 清华山维软件EPS2012常用快捷键
  11. QQ、微信、QQ浏览器UserAgent
  12. 改进YOLOv5!GSConv+Slim Neck进一步提升YOLOv5性能!
  13. 2019正睿Day1题解
  14. 正则表达式之数字验证
  15. 实现点击不同的按钮显示不同的内容【同一页面】web
  16. 如何评判刀片服务器性能,刀片服务器优点与刀片服务器缺点
  17. python远程安装软件_在家想远程公司电脑?Python + 微信一键连接!
  18. UESTC 1265
  19. java word导出带背景_Java 用Freemarker完美导出word文档(带图片)
  20. linux5.8系统设置屏幕长亮,大神为你讲解怎么设置屏幕常亮【突破办法】

热门文章

  1. 什么是正则化?他是如何起作用的?
  2. 江苏计算机学业水平测试多少分过关,江苏学业水平测试的相关问题整理
  3. 国标GB/T28181视频流媒体网页无插件直播服务4G摄像头无插件直播国标GB28181协议注册、心跳和注销协议说明介绍
  4. Pandas详解十之Dropna滤除缺失数据
  5. win10下硬盘安装ubuntu (完整版)
  6. 异常检测方法-MAD
  7. 2.6-2.7 向量运算的基本性质零向量
  8. [附源码]Python计算机毕业设计大学生校园社团管理系统Django(程序+LW)
  9. 一个Android开发者眼中的微信小程序
  10. OpenCV 外接矩形框 cv2.boundingRect、cv2.minAreaRect