聚类分析就是根据数据对象的特征及其关系,将对象分簇。簇内的相似性越大,簇间的差别越大,聚类就越好。在商业上被用来发现不同的客户群,并且通过购买模式刻画不同客户群的特征。聚类分析是细分市场的有效工具,同时也是用于研究消费者研究行为,寻找新的潜在市场。
聚类分析流程:
![61076a8e-4f2f-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/61076a8e-4f2f-eb11-8da9-e4434bdf6706.png)
聚类分析可以分为:划分方法,层次方法,基于密度的算法,基于网络的算法,基于模型的算法。
划分方法的定义:以距离作为数据集中不同数据间相似度的度量,将数据级划分为多个簇。K均值和k-中心点均是属于划分方法的聚类分析算法。
评价函数:评价聚类效果的评价函数主要考虑两个方面:每个簇中的对象应该是紧凑的;各个簇之间的对象的距离因该尽可能的远。实现这种考虑的一个之间办法就是观察类内差异w(c)和类间差异b(c)。类内差异衡量类内对象之间的紧凑性,类间差异衡量不同类之间的距离。
![63076a8e-4f2f-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/63076a8e-4f2f-eb11-8da9-e4434bdf6706.png)
![67076a8e-4f2f-eb11-8da9-e4434bdf6706.png](http://p04.5ceimg.com/content/67076a8e-4f2f-eb11-8da9-e4434bdf6706.png)
聚类C的聚类质量可以用W(c)和B(c)的一个单调组合来表示,譬如W(c)/B(c)。
K均值聚类
k均值是最古老、最广泛使用的聚类算法。其算法思想是:从包含n个数据的数据集中随机选则k个对象,每个对象代表初始的一个簇的平均值或者是质心,对于剩余的数据根据与各个簇的中心距离指派到最近的簇,然后根据指派到簇的数据重新计算质心,如此循环,直到成本函数不发生变化。k均值算法的成本函数E定义为:
![6b076a8e-4f2f-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/6b076a8e-4f2f-eb11-8da9-e4434bdf6706.png)
sklearn.cluster.KMeans 参数介绍
![70076a8e-4f2f-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/70076a8e-4f2f-eb11-8da9-e4434bdf6706.png)
algorithm:有“auto”, “full” or “elkan”三种选择。”full”就是我们传统的K-Means算法, “elkan”是elkan K-Means算法。默认的”auto”则会根据数据值是否是稀疏的,来决定如何选择”full”和“elkan”。一般数据是稠密的,那么就是 “elkan”,否则就是”full”。一般来说建议直接用默认的”auto”
copy_x:布尔型,默认值=True
当我们precomputing distances时,将数据中心化会得到更准确的结果。如果把此参数值设为True,则原始数据不会被改变。如果是False,则会直接在原始数据 上做修改并在函数返回值时将其还原。但是在计算过程中由于有对数据均值的加减运算,所以数据返回后,原始数据和计算前可能会有细小差别。
init:有三个可选值:’k-means++’, ‘random’,或者传递一个ndarray向量。
此参数指定初始化方法,默认值为 ‘k-means++’。
(1)‘k-means++’ 用一种特殊的方法选定初始质心从而能加速迭代过程的收敛,k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。
(2)‘random’ 随机从训练数据中选取初始质心。
(3)如果传递的是一个ndarray,则应该形如 (n_clusters, n_features) 并给出初始质心。
max_iter:整形,缺省值=300,执行一次k-means算法所进行的最大迭代数。
n_clusters:整形,缺省值=8 【生成的聚类数,即产生的质心(centroids)数。】
n_init: