简单易懂无监督分类算法:Kmeans, MiniBatchKmeans和DBSCAN

文章目录

  • KMeans
  • MiniBatchKMeans
  • DBSCAN

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不同,它是一种基于密度分类的聚类算法。
示意图:

简单易懂无监督分类算法:Kmeans, MiniBatchKmeans和DBSCAN_第1张图片

DBSCAN特征如下:

  • DBSCAN的重要参数是eps半径和min_samples半径内的最小样本数。
  • 每一个样本都有一个半径,如果半径内的样本数量大于min_samples,则该点是一个核心点,在核心点范围内的是边界点,所以核心点和边界点都属于同一类。如果一个点既不是边界点也不是核心点,则就是噪声点,噪声点被认为是不正确的样本。
  • 所以当eps半径比较小,而min_samples半径内的最小样本数比较大的时候,要求的密度值就更高。就容易"连不起来",会形成多个簇;相反则是少量的簇。
  • 调用函数的代码:from sklearn.cluster import DBSCAN
  • 分类效果图:
    简单易懂无监督分类算法:Kmeans, MiniBatchKmeans和DBSCAN_第2张图片

你可能感兴趣的:(分类,kmeans)