sklearn機器學習:K-Means之提前停止迭代

重要參數max_iter & tol:讓迭代停下來

之前描述K-Means的基本流程時我們提到過,當質心不再移動,K-Means算法就會停下來。但在完全收斂之前,我們也可以使用max_iter,最大迭代次數,或者tol,兩次迭代間Inertia下降的量,這兩個參數來讓迭代提前停下來。有時候,當我們的n_clusters選擇不符合數據的自然分佈,或者爲了業務需求,必須要填入與數據的自然分佈不合的n_clusters,提前讓迭代停下來反而能夠提升模型的表現。
max_iter
整數,默認300
單次運行K-Means允許的最大迭代次數
tol:
浮點數,默認1e-4
兩次迭代間Inertia下降的量,如果兩次迭代之間Inertia下降的值小於tol所設定的值,迭代就會停下
再次使用我們在博文《sklearn機器學習:K-Means》中建立的各向同性高斯團簇的數據點集:

random = KMeans(n_clusters=4,init='random',max_iter=1,
               random_state=420).fit(X)
y_pred = random.labels_
silhouette_score(X,y_pred)
0.649675191871833
#max_iter默認值300
random = KMeans(n_clusters=4,init='random',
               random_state=420).fit(X)
y_pred = random.labels_
silhouette_score(X,y_pred)
0.6505186632729437

可見,適當的max_iter提前讓迭代停下來反而能夠提升模型的表現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章