问题描述
在使用sklearn中Kmeans函数遇到RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.
self._check_params(X)报错
原因分析:
KMeans的默认行为是使用不同的随机质心(即Forgy method)多次初始化算法。然后,随机初始化的数量由n_init=参数(docs)控制:
解决方案:
如果将数组作为init=参数传递,则仅使用数组中显式指定的质心执行单个初始化。您得到的是一个RuntimeWarning,因为您仍在传递默认值n_init=10(here是相关的源代码行)。
忽略此警告实际上是完全可以的,但是如果您的init=参数是数组,则可以通过传递n_init=1使其完全消失