KMeans
KMeans的特征如下:
- 这是一种无监督算法(无标签),聚类算法。
- 算法过程:1、随机初始化n个中心点;2、将数据按照某一种“距离算法”,一般是欧氏距离,划分到最近的中心点,形成n个簇;3、根据划分结果,将簇内的中心点作为新的中心点,进行下一轮迭代;4、停止的条件有:(1)中心点不发生变化;(2)数据所属的簇不发生变化;(3)组内误差SSE小于某个阈值。
- 损失函数是SSE,组内误差。
- 调用函数的代码:
from sklearn.cluster import KMeans
MiniBatchKMeans
MiniBatchKMeans的特征如下:
- 是Kmeans算法的加速版本。
- 算法过程大致与Kmeans相同,不同的是:每次迭代都随机选择数据中的一小部分样本来进行迭代。根据迭代结果来生成新的中心点。
- 调用函数的代码:
from sklearn.cluster import MiniBatchKMeans
DBSCAN
DBSCAN与KMeans不同,它是一种基于密度分类的聚类算法。
示意图:
![1](https://tva1.sinaimg.cn/large/008i3skNly1gsczpozxc0j30m80gsjw5.jpg)
DBSCAN特征如下:
- DBSCAN的重要参数是
eps
半径和min_samples
半径内的最小样本数。 - 每一个样本都有一个半径,如果半径内的样本数量大于
min_samples
,则该点是一个核心点,在核心点范围内的是边界点,所以核心点和边界点都属于同一类。如果一个点既不是边界点也不是核心点,则就是噪声点,噪声点被认为是不正确的样本。 - 所以当
eps
半径比较小,而min_samples
半径内的最小样本数比较大的时候,要求的密度值就更高。就容易"连不起来",会形成多个簇;相反则是少量的簇。 - 调用函数的代码:
from sklearn.cluster import DBSCAN
- 分类效果图: