出现这种现象的原因用一句话说:
传参的时候,必须先确定 位置(未知参数),再写关键字参数
我这里无论如何改第六行的顺序都不对,问题出在 = 打成== 导致关键字参数max_iter 被计算机误认为是重要优先级高的位置参数了
修改后正常
result = []
for n_clusters in range(2,10):
for max_iter in range(300,601,50): #最大迭代次数
for tol in range(2,10):
tol=tol*1e-5
km = KMeans(n_clusters=n_clusters,max_iter=max_iter,tol=tol)
km.fit(data)
d={'n_clusters':n_clusters,'max_iter':max_iter,'tol':tol,'inertia':km.inertia_}
result.append(d)
原文见 机器学习8