栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

聚类分析-KMeans算法与DBSCAN算法,简单理解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

聚类分析-KMeans算法与DBSCAN算法,简单理解

1KMeans算法

KMeans算法是用来聚类的,其中的 K 表示类别数量,以样本间的距离作为聚类的标准,该算法的核心思想非常简单,总共就 3 个步骤。

步骤 1:在样本中随机选取 K 个样本点,作为初始中心点;

步骤 2:计算每个样本点到各个中心点的距离,然后将样本点分配给最近的中心点;

步骤 3:根据聚类结果,将每类的均值作为新的中心点;

步骤 4:不断重复步骤 2、3,当中心点不再变动时,结束算法。

2 DBSCAN算法 

DBSCAN 算法是一种以密度为基础的空间聚类算。该算法也很好理解,就好城市群划分,半径多少公里内的城市就算作一个城市群。当然这就设计到两个问题了,第一是我们要确定这个半径,第二是我们要确定至少多少个城市才能叫做城市群(我觉得至少要 3 个)。

假设有若干个城市,半径确定为 300 公里,圈内最小城市数为 3,那么该算法有 4 个步骤,如下:

步骤 1:随机选取一个未分类的城市;

步骤 2:以该城市为圆心,按照半径画圆,如果圆内的城市数大于等于 3,就将这些城市归为一类;

步骤 3:选定圆内其他的城市为圆心,继续画圆,如果城市数小于 3,则放弃这个圆,一直重复画圆的步骤,直到没有可画的圆,将这些城市都归为一类。

步骤 4:再次随机选择一个未分类的城市,重复步骤 2 和步骤 3。

3 对比

如下图所示,同样聚成 4 类,左边是 KMeans 算法聚类的结果,右边是 DBSCAN 聚类的结果,想一想为什么会这样呢?这是否能说明哪个算法更好呢?

      

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号