一、参数random_state
我们知道:初始质心放置的位置不同,聚类的结果很可能也会不一样。在之前讲解初始质心的放置时,我们是使用”随机“的方法在样本点中抽取 k 个样本作为初始质心,这种方法显然不符合”稳定且更快“的需求。为此, 我们可以使用 random_state参数来控制每次生成的初始质心都在相同位置。
二、参数n_init
一个 random_state 对应一个质心随机初始化的随机数种子。如果不指定随机数种子,则 sklearn 中的K-means 并不会只选择一个随机模式扔出结果,而会在每个随机数种子下运行多次,并使用结果最好的一个随机数种子来作为初始质心。
那么如何控制每个随机数种子下运行的次数呢?
我们可以使用参数 n_init 来选择,每个随机数种子下运行的次数。这个参数不常用到,默认 10 次,如果我们希望运行的结果更加精确,那我们可以 增加这个参数 n_init 的值来增加每个随机数种子下运行的次数。
三、参数说明:
1)random_state:控制每次质心随机初始化的随机数种子
2)n_init:整数,默认 10,用不同的质心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。