sklearn kmeans里的n_init是什么意思

  统计/机器学习 无监督学习 Python    浏览次数: 306
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次里面选最优的那个。

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


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

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

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

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


AlphaCat   2018-04-04 09:34



  相关主题

sklearn.cluster.KMeans用的哪种距离?   1回答

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

python中实现k-modes的包   1回答

Jenks和K Means在一维数据时,是不是等价的?   2回答

谱聚类中的相似矩阵是怎么定义的?   0回答

什么是K-Modes(K众数)聚类法?   1回答

k-medoids和k-means区别   3回答

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

K-MEANS初始点选择的问题   2回答

软聚类,硬聚类?   1回答

通俗地解释c-means以及fuzzy c-means是什么意思   1回答

如何用K Means做异常点检测?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!