sklearn聚类之—KMeans
未标记的数据的Clustering(聚类),可以是使用模块sklearn.cluster来实现
每个clustering algorithm(聚类算法)有两个变体:一个是class,他实现了fit的方法来学习训练数据的cluster,还有一个函数,是给定训练数据,返回与不同的cluster对应的证书标签数据,对于class,training data 上的标签可以在labels_属性中找到。
输入数据
需要注意的一点是,该模块中实现的算法可以采用不同种类的 matrix (矩阵)作为输入。所有这些都接受 shape [n_samples, n_features]
的标准数据矩阵。 这些可以从以下的 sklearn.feature_extraction
模块的 classes (类)中获得。对于 AffinityPropagation
, SpectralClustering
和 DBSCAN
也可以输入 shape [n_samples, n_samples]
的相似矩阵。这些可以从 sklearn.metrics.pairwise
模块中的函数获得。
1.理论
kMeans算法通过试图分离n个相同方差组样本来聚集数据,minimizing(最小化)称为inertia或者within-cluster-sum-of-squares(簇内平方和)的criterion(标准)。该算法需要制定number of clusters(簇的数量),他可以很好的扩展到大量样本并且已经被广泛引用于很多不同的领用的应用领域。
该算法是将一组N样本X划分成K不相交的簇C,每个都用cluster中的样本的均值描述,这个means(均值)通常被称为cluster(簇)的质心(centroidsÿ