本文是个人的理解,由于刚接触并且自身能力也有限,也许会存在误解,欢迎留言指正,本人一定虚心请教,谢谢
def k_means(X, n_clusters, init='k-means++', precompute_distances='auto',
n_init=10, max_iter=300, verbose=False,
tol=1e-4, random_state=None, copy_x=True, n_jobs=1,
algorithm="auto", return_n_iter=False):
"""K-means clustering algorithm.
"""
#判断输入的簇的数目是否大于0
if n_init <= 0:
raise ValueError("Invalid number of initializations."
" n_init=%d must be bigger than zero." % n_init)
'''
检验随机数生成器
random_state:None | int | RandomState实例
如果为None,则返回np.random的RandomState的一个实例
如果为int,则返回一个以int为种子的新RandomState实例
如果为RandomState实例,则返回该实例
否则,ValueError
'''
random_state = check_random_state(random_state)
#判断算法每次迭代的最大次数是否大于0
if max_iter <=