我正在使用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')


python - 用于主题建模的K均值-弯头方法-LMLPHP

最佳答案

问题在于,k均值在此类数据上不稳定。

每个k运行10次,并绘制所有结果。

K均值对异常值和高维数据敏感。因此,它在文本上无法可靠运行。

关于python - 用于主题建模的K均值-弯头方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50106516/

10-12 05:29