1 什么是聚类算法?
聚类算法就是根据特定的规则,将数据进行分类。分类的输入项是数据的特征,输出项是分类标签,它是无监督的。
常见的聚类规则包括:1)基于原型的,例如有通过质心或中心点聚类,常见的算法KMeans;2)基于图的,也就是通过节点和边的概念,形成连通分支的分类,常见的算法是凝聚层次聚类,最小生成树聚类;3)基于密度的,根据数据密度的大小进行聚类,常见的算法是DBSCAN,SNN密度聚类;4)基于统计的聚类,数据一般符合一种或几种概率分布,根据概率分布情况进行聚类。
2 常见的几类聚类算法
这里介绍KMeans、凝聚层次聚类和DBSCAN三种聚类方法。
2.1 KMeans聚类
KMeans聚类就是通过找出距离质心最近的点的分为一类的方法,达到SSE(误差平方和)最小的目标。
2.1.1 基本概念
K类:参数,聚类前设置的聚类形成的簇的个数;
质心:每个簇的聚集中心,一般L2距离为均值;余弦相似度为均值;L1距离为中位数。
距离:待聚类点到质心的距离,一般低维空间用L2距离,文档用余弦相似度。
SSE:KMeans聚类的目标函数,簇中各点到质心的距离平方和为簇内SSE,总SSE为K个簇内SSE之和。
2.1.2 KMeans聚类流程
Step1:确定要聚成的簇的个数n_clusters = k,选择k个初始质心;