sklearn kmeans里的n_init是什么意思

  统计/机器学习 无监督学习 Python    浏览次数:9538        分享
0

官方文档里对n_init的描述是

Number of time the k-means algorithm will be run with different centroid seeds. The  final results will be the best output of n_init consecutive runs in terms of inertia. 

设置选择质心种子的次数,默认为10次。返回质心最好的一次结果。

这个是什么意思?


 

niiii   2018-03-30 08:41



   2个回答 
4

n_init就是初始化的次数。

为什么要多次初始化呢?

因为k means无法达到全局最优,每次收敛到最后的结果是局部最优,所以就需要跑很多次独立初始化的k means,比如说n_init=10就是跑10次。然后从这10次里面选最优的那个。

不同初始化只取决于不同的初始点,也就是初始质心。


SofaSofa数据科学社区DS面试题库 DS面经

蘑菇蘑菇   2018-03-31 22:06

谢谢,明白了 - niiii   2018-04-02 22:13
2

k means无法保证收敛到最优解,所以要反复进行,选择当中最优的。

n_init就是重复进行k means的次数。


SofaSofa数据科学社区DS面试题库 DS面经

AlphaCat   2018-04-04 09:34



  相关讨论

sklearn.cluster.KMeans用的哪种距离?

sklearn.cluster.KMeans可以用其他距离吗?

sklearn.cluster.KMeans的fit_transform方法的返回值是什么意义?

k-medoids和k-means区别

KMeans++是怎么选初始点的?

关于online KMeans步骤中成员更新分类的问题?

K-Means实现mini-batch online learning的原理是什么?

K Means初始点必须是样本中的点吗

关于小批量K均值(mini-batch K Means)的问题

kmeans可以做并行化计算达到加速效果吗?

  随便看看

sklearn r2_score返回负数

numpy里的无穷大np.inf到底是多大呢?

点击率的95%置信区间该怎么算?

如何检验两个样本是同分布的?

R里线性回归结果中最后的F-statistic什么意思?有什么用?