机器学习算法——聚类分析

  1. 概念

聚类分析 (cluster analysis)是一组将研究对象分为相同质的群(clusters)的统计分析技术。 聚类分析也叫(classificationanalysis)或数值分类 (numerical taxonomy)。聚类与分的不同在于, 聚类所要求划分的是未知

  • 聚类度量方法

聚类之间的度量是分距离和相似系数来度量的

距离:用来度量样品之间的相似性(KMeans聚类,系统中的Q型聚类)

相似系数用来度量变量之间的相似性(系统聚类R型聚类)

  • 聚类分析研究方法

层次的方法( hierarchical method)

划分方法( partitioning method)

基于密度的方法( density-based method)---DBSCAN(Density-Based Spatial Clustering of Applications with Noise)

基于网格的方法( grid-based method)

基于模型的方法( model-based method)

  • 常用聚类分析研究方法

K-pototypes算法

K-Means算法

CLARANS算法(划分方法)

BIRCH算法(层次方法)

CURE算法(层次方法)

DBSCAN算法(基于密度的方法)

CLIQUE算法(综合了基于密度和网格的算法)

  1. Kmeans算法

适用于大样本,但需要事先制定分为 K个类

n个数据对象任意选择k个对象作为初始聚类中心于剩下的其他对象则根据它们与这些聚类中心的相似度(距离),分别将它们配给与其最相似的(聚类中心所代表的)聚类;再计算每个所获新聚类的聚类中心(聚类中所有对象均值);不断重复这一过程,直到标准测度函数开始收敛为止 K个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

  • 算法流程:
    1. n个数据对象任意选择 k个对象作为初始聚类中心
    2. 根据每个聚类对象的均值(中心),计算与这些距离,并根据最小距离重新对相应象进行划分
    3. 重新计算每个(有变化) 聚类的均值中心对象重复下面过程直到收敛

{ 对于每一个样例 i,计算其应该属于的类:


 

对于每一个类 j,重新计算该类的质心:

机器学习算法——聚类分析_第1张图片

}

  1. 循环( 2),( 3直到每个聚类不再发生变化为止。
  • 算法伪代码:

创建 k个点作为初始的质心(随机选择)

当任意一个点的簇分配结果发生改变时

对数据集中的每一个点

对每一个质心

计算质心与数据点的距离

将数据点分配到距离最近的簇

对每一个簇,计算中所有点的均值并将作为质心

  • Kmeans算法优缺点:

优点

  • 本算法确定的 K个划分到达平方误差最小。当聚类是密集的,且与之间区别明显时效果较好。
  • 对于处理大数据集,这个算法是相可伸缩和高效的计复杂度为 O(NKt),其中 N是数据对象的数目, K是聚类中心, t是迭代的次数。

缺点

  • K是事先给定的,但非常难以选定。
  • 初始聚类中心的选择对聚类结果有较大影响。
  • python实现:

fromsklearn.cluster import KMeans
clf =KMeans(n_clusters=3, max_iter=300, n_init=10)
clf.fit(X)ypred = clf.predict(X)

你可能感兴趣的:(机器学习)