首页系统kmeans聚类算法(常用聚类算法)

kmeans聚类算法(常用聚类算法)

编程之家2024-05-16100次浏览

一、kmeans算法迭代过程

k均值聚类算法(k-meansclusteringalgorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。

kmeans聚类算法(常用聚类算法)

终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

二、k means聚类分析

Kmeans聚类算法是一种常用的聚类方法。Kmeans算法是一个重复移动类中心点的过程,把类的中心点,也称重心(centroids),移动到其包含成员的平均位置,然后重新划分其内部成员。

k是算法计算出的超参数,表示类的数量;Kmeans可以自动分配样本到不同的类,但是不能决定究竟要分几个类。k必须是一个比训练集样本数小的正整数。有时,类的数量是由问题内容指定的。

三、kmeans聚类参数

K-means聚类算法是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目K,K由用户指定,K均值算法根据某个距离函数反复把数据分入K个聚类中。

K-means算法的思想是,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。而K中心点算法通过对K-means算法计算簇的方法加以改进得来,基于最小生成树的K中心点算法通过对K中心点算法求取初始中心点的方法改进得来。

参数:

kmeans聚类算法(常用聚类算法)

n_clusters:int型,生成的聚类数,默认为8。

max_iter:int型,执行一次k-means算法所进行的最大迭代数。默认值为300。

n_init:int型,用不同的聚类中心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。默认值为10。

init:有三个可选值:'k-means++'、'random'、或者传递一个ndarray向量。

(1).k-means++:用一种特殊的方法选定初始质心从而能加速迭代过程的收敛

(2).random:随机从训练数据中选取初始质心。

kmeans聚类算法(常用聚类算法)

(3).如果传递的是一个ndarray,则应该形如(n_clusters,n_features)并给出初始质心。

默认值为'k-means++'。

tol:float型,默认值=1e-4与inertia结合来确定收敛条件。

n_jobs:int型。指定计算所用的进程数。内部原理是同时进行n_init指定次数的计算。

(1).若值为-1,则用所有的CPU进行运算。若值为1,则不进行并行运算,这样的话方便调试。

(2).若值小于-1,则用到的CPU数为(n_cpus+1+n_jobs)。因此如果n_jobs值为-2,则用到的CPU数为总CPU数减1。

random_state:整形或numpy.RandomState类型,可选。

用于初始化质心的生成器(generator)。如果值为一个整数,则确定一个seed。此参数默认值为numpy的随机数生成器。

nvidia tegra4(nvidiategra4究竟有哪些性能亮点)高通骁龙800(高通骁龙800是什么)