聚类算法K-Means - 参数列表(四)

373 阅读4分钟

根据菜菜的课程进行整理,方便记忆理解

代码位置如下:

参数列表

参数含义
n_clusters整数可不填,默认8
要分成的簇数,以及要生成的质心数
init可输入”k-means++'',"random”或者一个n维数组
初始化质心的方法,默认”k-means++‘'
输入”k-means++":一种为K均值聚类选择初始聚类中心的聪明的办法以加速收敛
如果输入了n维数组,数组的形状应该是(n_clusters,n_features)给出初始质心
n_init整数,默认10
使用不同的质心随机初始化的种子来运行k-means算法的次数.最终结果会是基于Inertia来计算的n_init 次连续运行后的最佳输出
max_iter整数,默认300
单次运行的k-means算法的最大迭代次数
tol浮点数,默认1e-4
两次迭代间Inertia下降的量,如果两次迭代之间Inertia下降的值小于tol所设定的值,迭代就会停下
precompute_distancesauto",True, False,默认’auto"
预计算距离(更快但需要更多内存) 'auto':如果n_samples * n_clusters> 1200万,请不要预先计算距离。这相当于使用双精度来学习每个作业大约需要100MB的内存开销。 True:始终预先计算距离 False;从不预先计算距离
verbose整数,默认0
计算中的详细模式
random_state整数,Randomstate或者None,默认None
确定质心初始化的随机数生成。使用int可以使随机性具有确定性
copy_x布尔值,可不填,默认True
在预先计算距离时,如果先中心化数据,距离的预计算会更加精确。如果copy_x为True (默认值),则不修改原始数据,确保特征矩阵x是C-连续(C-contiguous)的。如果为False,原始数据被修改并在函数返回之前放回,但是可以通过减去或增加数据均值来引入微小的数值差异,在这种情况下,False模式无法确保数据是C-连续的,这可能导致K-Means的计算量显著变慢。
n_jobs整数或None,可不填默认1
用于计算的作业数。在计算每个n_init时并行运行的workor数.
这个参数允许K-means:在多个workor线上并行运行。给这个参数一个正值n_jobs,表示使用n_jobs条处理 器中的线程。值-1表示使用所有可用的处理器,-2表示使用所有可用的处理器-1个处理器依此类推。并行化通常以内存为代价加速计算(在这种情况下,需要存储多个质心副本,每个作业一个)
algorithm可输入“auto",'full" or "elkan",默认为“auto"
K-means算法使用。经典的EM风格算法是“完整的“。通过使用三角不等式,"elkan'‘变体更有效, 但目前不支持稀疏数据。"auto"为密集数据选择‘'elkan",为稀疏数据选择’'full"

重要属性

属性含义
cluster_centers_收敛导质心,如果算法在完全收敛之前就停下了(受到参数max_iter和tol的控制),所返回的内容与labels_属性中反应出来的聚类的结果不一致
labels_每个样本点对应的标签
intertia_每个样本到距离他们最近的簇心的均方距离,又叫做"簇内平方和"
n_iter_实际的迭代次数

接口

接口输入功能&返回
fit训练特征矩阵x,[训练用标签,sample_weight]拟合模型,计算K均值的聚类结果
fit_predict训练特征矩阵x,[训练用标签,sample_weight]返回每个样本所对应的簇的索引
计算质心并且为每个样本预测所在的簇的索引功能相当于
fit_transform训练特征矩阵x,[训练用标签,sample_weight]返回新空间中的特征矩阵
进行聚类并且将特征矩阵x转换到彻巨离空间当中,功能相当于先fit再transform
get_params不需要任何输入获取该类的参数
predict训练特征矩阵x,[sample_weight]预测每个测试集x中的样本的所在簇,并返回每个样本所对应的簇的索引
在矢量呈化的相关文献中,cluster_centers_被称为代码簿,predict返回的每个值是代码簿中最接近的代码的索引
score训练特征矩阵x,[训练用标签,sample_weight]返回聚类后的Inertia,即簇内平方和的负数
簇内平方和是Kmeans常用的模型评价指标簇内平方和越小越好,最佳值为0
set_params需要新设定的参数为建立好的类重设参数
transform任意特征矩阵X将x转换到簇距离空间中
在新空间中,每个维度(即每个坐标轴)是样本点到集群中心的距离。请注意:即使X是稀疏的,变换返回的数组通常也是密集的。