单链聚类算法_各种聚类算法(原理+代码+对比分析)最全总结

本文详细介绍了聚类算法的原理和应用,包括基于划分的K-MeANS、基于密度的DBSCAN、基于层次的聚类以及单链聚类算法。通过代码示例展示了如何使用这些算法,同时提供了图形和控制台输出,便于理解各类算法的特点和效果。
摘要由CSDN通过智能技术生成

序言

还是要持续总结,持续积累。

一、聚类的目标

使同一类对象的相似度尽可能地大;不同类对象之间的相似度尽可能地小。

二、聚类算法分类

1.基于划分

给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K

特点:计算量大。很适合发现中小规模的数据库中小规模的数据库中的球状簇。

算法:K-MEANS算法、K-MEDOIDS算法、CLARANS算法

2.基于层次

对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。

特点:较小的计算开销。然而这种技术不能更正错误的决定。

算法:BIRCH算法、CURE算法、CHAMELEON算法

3.基于密度

只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。

特点:能克服基于距离的算法只能发现“类圆形”的聚类的缺点。

算法:DBSCAN算法、OPTICS算法、DENCLUE算法

4.基于网格

将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。

特点:处理速度很快,通常这是与目标数据库中记录的个数无关的,只与把数据空间分为多少个单元有关。

算法:STING算法、CLIQUE算法、WAVE-CLUSTER算法

三、DBscan聚类

1.算法原理

DBSCAN(Density-Based Spatial Clustering of Application with Noise)是一种典型的基于密度的聚类算法,在DBSCAN算法中将数据点分为一下三类:

核心点:在半径Eps内含有超过MinPts数目的点

边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内

噪音点:既不是核心点也不是边界点的点

在这里有两个量,一个是半径Eps,另一个是指定的数目MinPts

2.代码

# encoding=utf-8

import numpy as np

from sklearn.cluster import DBSCAN

from sklearn import metrics

from sklearn.datasets.samples_generator import make_blobs

from sklearn.preprocessing import StandardScaler

import matplotlib.pyplot as plt

class DBScan (object):

""" the class inherits from object, encapsulate the DBscan algorithm """

def __init__(self, p, l_stauts):

self.point = p

self.labels_stats = l_stauts

self.db = DBSCAN(eps

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值