如何解释k的结果

我目前正在使用NTSB航空事故数据库进行一些分析。 这个数据集中的大多数航空事件都有原因性陈述,描述导致此类事件的因素。

我的目标之一是尝试对原因进行分组,聚类似乎是解决这类问题的一种可行方法。 我在k-均值聚类开始之前执行了以下操作:

  • 停止词语移除,即删除文本中的一些常见功能词
  • 文本加注,即删除单词的后缀,并在必要时将该术语转换为最简单的形式
  • 将文档矢量化为TF-IDF矢量,以扩大不太常见但信息量更大的单词并缩小高度常见但较少信息的单词
  • 应用SVD来降低向量的维数
  • 在这些步骤之后,对矢量应用k均值聚类。 通过使用1985年1月至1990年12月发生的事件,我得到了下列结果,其中k = 3的簇k = 3

    (注意:我正在使用Python和sklearn来处理我的分析)

    ... some output omitted ... 
    Clustering sparse data with KMeans(copy_x=True, init='k-means++', max_iter=100, n_clusters=3, n_init=1,
        n_jobs=1, precompute_distances='auto', random_state=None, tol=0.0001,
        verbose=True)
    Initialization complete
    Iteration  0, inertia 8449.657
    Iteration  1, inertia 4640.331
    Iteration  2, inertia 4590.204
    Iteration  3, inertia 4562.378
    Iteration  4, inertia 4554.392
    Iteration  5, inertia 4548.837
    Iteration  6, inertia 4541.422
    Iteration  7, inertia 4538.966
    Iteration  8, inertia 4538.545
    Iteration  9, inertia 4538.392
    Iteration 10, inertia 4538.328
    Iteration 11, inertia 4538.310
    Iteration 12, inertia 4538.290
    Iteration 13, inertia 4538.280
    Iteration 14, inertia 4538.275
    Iteration 15, inertia 4538.271
    Converged at iteration 15
    
    Silhouette Coefficient: 0.037
    Top terms per cluster:
    **Cluster 0: fuel engin power loss undetermin exhaust reason failur pilot land**
    **Cluster 1: pilot failur factor land condit improp accid flight contribute inadequ**
    **Cluster 2: control maintain pilot failur direct aircraft airspe stall land adequ**
    

    并且我生成了如下数据的曲线图:

    绘制k均值聚类的结果

    结果似乎对我来说并不合适。 我想知道为什么所有的集群都包含一些常见术语,如“飞行员”和“失败”。

    我能想到的一种可能性(但我不确定它在这种情况下是否有效)是具有这些常用术语的文档实际上位于剧情图的中心,因此它们不能有效地聚集到正确的群集。 我相信这个问题不能通过增加群集数来解决,因为我刚刚完成了这个问题,并且这个问题依然存在。

    我只想知道是否有其他因素可能导致我面临的情况? 或者更广泛地说,我使用正确的聚类算法吗?

    感谢所以。


    我不想成为坏消息的载体,但是......

  • 聚类是一种非常糟糕的探索技术 - 主要是因为如果没有明确的,任务导向的目标,聚类技术实际上集中在优化一些数学准则,而这些准则很少与你想达到的目标有关。 因此k-means尤其会寻找从聚类中心到聚类中所有点的欧氏距离的最小化。 这无论如何与你想实现的任务有关? 通常答案是“不”,或者最好的情况是“我不知道”。
  • 将文档表示为一堆文字会导致非常笼统地查看您的数据,因此,区分类似的文档不是一个好方法。 这种方法可以用来从关于曲棍球的文本中区分关于枪支的文本,而不是来自同一个领域的特殊文本(这里似乎是这种情况)
  • 最后 - 你不能真正评估一个集群,这是最大的问题。 因此,没有完善的技术来拟合最佳聚类。
  • 所以,要回答你最后的问题

    我只想知道是否有其他因素可能导致我面临的情况?

    有成千上万种这样的因素。 从人类的观点来看,实际的,合理的数据聚集非常困难。 寻找任何群集非常简单 - 因为每个群集技术都会找到一些东西。 但为了找到重要的东西,我们必须在这里进行全面的数据探索。

    或者更广泛地说,我使用正确的聚类算法吗?

    可能不会,因为k-means只是一种最小化欧几里得距离的内聚集总和的方法,因此它在大多数现实世界的场景中都不起作用。

    不幸的是 - 这不是那种你可以问“哪种alogirhtm使用?”的问题。 有人会为你提供确切的解决方案。

    你必须挖掘你的数据,发现:

  • 代表方式 - tfidf真的很好吗? 你预处理了词汇吗? 删除了无意义的单词? 也许这是考虑去进行一些现代文字/文档表示学习的麦汁?
  • 结构在你的数据 - 为了找到最佳模型,你应该可视化你的数据,调查,运行统计分析,试图找出什么是基础指标。 有没有合理的分数分配? 这些高斯人? 高斯混合? 你的数据是否稀疏?
  • 你能提供一些专业知识吗? 也许你可以自己分割数据集的一部分? 半监督技术更好地定义了任何无监督的技术,因此您可以轻松获得更好的结果。
  • 链接地址: http://www.djcxy.com/p/91133.html

    上一篇: How to explain the outcome of k

    下一篇: Xpath with js and google chrome