我正在使用K-Means从文本中提取主题。我知道这不是最佳方法,但这只是迈向更复杂模型的一步。让我感到困惑的是我得到的肘部弯曲(如下)。您将如何解释它?为什么在50 K附近突然出现峰值?还是在处理文本时肘部方法不能真正起作用?
from sklearn.cluster import MiniBatchKMeans
wcse = []
for k in range(5, 100, 5):
kmeans_model = MiniBatchKMeans(n_clusters=num_clusters, init='k-means++', n_init=1,
init_size=1000, batch_size=1000, verbose=False, max_iter=1000)
kmeans = kmeans_model.fit(X) # where X is my data
wcse.append(kmeans_.inertia_)
#plot it
fig = plt.figure(figsize=(15, 5))
plt.plot(range(5, 100, 5), wcse)
plt.grid(True)
plt.title('Elbow curve')
最佳答案
问题在于,k均值在此类数据上不稳定。
每个k运行10次,并绘制所有结果。
K均值对异常值和高维数据敏感。因此,它在文本上无法可靠运行。
关于python - 用于主题建模的K均值-弯头方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50106516/