目录
一、12种聚类(无监督学习)算法说明和区分比较
聚类算法的类型(一)
编辑导入函数库
加载数据集
编辑 (1)K-Means --Centroid models
(2)Mini-Batch K-Means -- Centroid models
(3)AffinityPropagation (Hierarchical) -- Connectivity models
(4)Mean Shift -- Centroid models
聚类后如何标记到原来的数据上面?
(5)Spectral Clustering -- Connectivity models
(6) Ward (Hierarchical) -- Connectivity models
(7) Agglomerative Clustering (Hierarchical) -- Connectivity models
(8) DBSCAN -- Density Models
(9) BIRCH -- Connectivity models
聚类的类型(二)
(10) OPTICS -- Density Models
(11) Gaussian Mixture Model -- Distribution models
(12) HDBSCAN -- Density Models
二、数据科学家及12种聚类(无监督学习)算法简明源代码归纳
1、KMeans
2、MiniBatchKMeans
3、 AffinityPropagation
4、MeanShift
5、 SpectralClustering
6、Ward (Hierarchical) 同下
7、 AgglomerativeClustering
8、DBSCAN
9、Birch
10、OPTICS
11、 GaussianMixture
12、 HDBSCAN
一、12种聚类(无监督学习)算法说明和区分比较
聚类算法的类型(一)
- 连通性模型:顾名思义,这些模型基于数据点在数据空间中越接近,彼此之间的相似性就越高,而距离较远的数据点则相似性较低。这些模型可以采用两种方法。第一种方法是将所有数据点分类为单独的簇,然后随着距离的减小进行聚合。第二种方法是将所有数据点分类为单个簇,然后随着距离的增加进行划分。此外,距离函数的选择是主观的。这些模型非常易于解释,但缺乏处理大型数据集的可扩展性。这些模型的例子是层次聚类算法及其变体。
- 质心模型:这些是迭代聚类算法,其中相似性的概念是通过数据点与簇的质心的距离来推导的。K-Means聚类算法是一种流行的属于这一类的算法。在这些模型中,需要预先指定最终所需的簇的数量,这要求对数据集有先验知识。这些模型通过迭代寻找局部最优解。
- 分布模型:这些聚类模型基于所有簇中的数据点属于同一分布(例如:正态、高斯)的可能性。这些模型往往容易过拟合。这类模型的一个流行例子是期望最大化算法,它使用多元正态分布。
- 密度模型:这些模型在数据空间中搜索数据点密度不同的区域。它将各种不同密度的区域隔离开来,并将这些区域内的数据点分配到同一个簇中。密度模型的流行例子是DBSCAN和OPTICS。
from IPython.display import Image
Image(filename='./Lesson33-cluster.png')
导入函数库
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn.cluster as cluster
import time
%matplotlib inline
加载数据集
data = np.load('