1、BIRCH聚类
BIRCH的全称是利用层次方法的平衡迭代规约和聚类(Balanced Iterative Reducing and Clustering Using Hierarchies)。BIRCH算法利用了一个树结构来快速的聚类,这个数结构类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)。这颗树的每一个节点是由若干个聚类特征(Clustering Feature,简称CF)组成。
一般来说,BIRCH算法适用于样本量较大和类别数比较大的情况,需要进行调参。
BIRCH算法的主要优点有:
- 节约内存,所有的样本都在磁盘上,CF Tree仅仅存了CF节点和对应的指针。
- 聚类速度快,只需要一遍扫描训练集就可以建立CF Tree,CF Tree的增删改都很快。
- 可以识别噪音点,还可以对数据集进行初步分类的预处理。
BIRCH算法的主要缺点有:
- 由于CF Tree对每个节点的CF个数有限制,导致聚类的结果可能和真实的类别分布不同。
- 对高维特征的数据聚类效果不好。
- 如果数据集的分布簇不是类似于超球体,或者说不是凸的,则聚类效果不好。
# BIRCH聚类,使用默认参数
from sklearn.datasets.samples_generator import make_blobs
from sklearn.cluster import Birch
from sklearn.metrics import calinski_harabaz_score
import matplotlib.pyplot as plt
# 随机生成数据
x, y = make