【问题标题】:K-Means for topic modelling - Elbow method用于主题建模的 K-Means - 肘部方法
【发布时间】:2018-10-10 21:40:39
【问题描述】:

我正在使用 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 machine-learning scikit-learn cluster-analysis k-means


    【解决方案1】:

    您如何使用 k-means 定义不同主题之间的距离?

    如果您只使用单词的相似度作为 k-means 的距离度量,您将无法获得主题,您会得到某种单词计数器。

    我会使用潜在狄利克雷分配 (LDA) 进行主题建模,有易于使用的 Python、R、Java 库..

    【讨论】:

      【解决方案2】:

      问题在于 k-means 在此类数据上不稳定。

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

      K-means 对异常值和高维数据很敏感。所以它只是在文本上不可靠。

      【讨论】:

        猜你喜欢
        • 2019-09-15
        • 2020-12-16
        • 2018-11-22
        • 2018-04-18
        • 2013-08-05
        • 2020-10-08
        • 2023-03-15
        • 2017-05-23
        • 2021-06-07
        相关资源
        最近更新 更多