我正在使用silhouette_score来找到最佳的 k 值。所以我正在运行一个带有一系列可能 k 值的 for 循环。我在下面添加了我的代码。这个程序需要很长时间才能运行。您能否提出一些改进以提高运行时间?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from sklearn.cluster import KMeans
from sklearn import metrics
data=np.load(filename)
coeffs=[]
for i in range(2,8):
clusters=KMeans(n_clusters=i)
clusters.fit(data)
labels = clusters.labels_
sil_coeff = metrics.silhouette_score(data, labels,metric='euclidean')
coeffs.append(sil_coeff)
coeffs=np.array(coeffs)
k=np.argmax(coeffs)+2