2017-02-18 120 views
0

我有一个疑问,在我的会议中我也被问过很多次,我没有回答它。我希望你能帮助我了解这个问题的见解。为什么同一组聚类的数据点在Kmeans聚类中远离或分散?

我已经在我的项目中使用kmeans聚类来聚集各个问题区域的大量文档。我还使用matplotlib来绘制数据点的坐标。更常见的是落在同一个簇中的数据点分散或远离属于同一个簇中的其他文档或数据点。一般人们问我的问题是,如果文档或数据点来自同一个群集/组,那么它们需要彼此靠得更近,为什么没有发生关于同一群组/群集的文档。

我如何说服他们,有时我会无言以对他们说什么。

除了同样的问题,我无法控制集群的形成,但作为我的领域的专家,我非常清楚文档属于哪个领域。那么,如何使用Kmeans或任何其他集群机器或通过使用超参数来准确地将这几千个文档配置/集群到这些问题区域。请帮助我。 enter image description here

我从http://brandonrose.org/clustering

enter image description here

父亲,纽约起飞参考,哥哥是一个簇的紫色。如果它属于同一个集群,那么它们都需要位于一侧靠近彼此的绘图屏幕上。为什么它分散在绘图屏幕中的任何地方。多数民众赞成在我的情况也发生了什么。

+0

以我的经验,文本上的k-means不太适用。 **永远不要相信**结果。最多使用它给你一个*想法*有什么,因为通常至少有50%的点位于错误的聚类中。 –

+0

ok,在这种情况下,什么算法适合文本。让我的问题要求更加宽泛。我有成千上万的文件/问题来自不同的方面,比如bugzilla,socialcast,salesforce等等......我想将这些文档或PR集成到一个尖锐的问题领域。举例来说,在JAVA中,人们每天面临着许多问题,他们会发布他们的问题,我需要把所有这些文档都集中到特定的问题领域,比如nullpointerexception应该都集中在一个集群中,并且集合相关的问题应该放在其他集合中簇。什么阿尔戈套房很好集群这一点。 –

+0

我怀疑任何聚类都能做到这一点。由于您使用了多个数据源,因此您很可能会看到群集对应于:bugzilla,socialcast,salesforce。这将是一个成功的集群,但对你来说毫无用处。 –

回答

1

您只提供有关您的数据的很少信息,因此,此答案有点推测。但我确信你的数据点有两个以上的组件,并且你至少在三维空间中进行k-means聚类。然后你使用某种投影来以二维方式显示它们。由于投影,原本彼此远离的点似乎彼此靠近。二维图很少说明原始的高维空间中的邻域关系。

+0

我引用此链接来解决我的问题 http://brandonrose.org/clustering 即使在这里,我看到一个特定的群集电影散落。我也会上传上面的图片。我看到集群名称是Father,纽约,兄弟是紫色的,这些数据点分散在剧情中的每一处。为什么会这样,如果它的所有相同的群集,那么它需要更接近正确。 –

+0

@Niteshkumar:链接的文档证实了我的假设,即实际的聚类是在高维向量空间中完成的。在这个空间中,一个集群的点实际上是靠近在一起的。你展示的图只是这个空间的二维可视化。 –

+0

好,但为什么落在同一个簇下的数据点的二维可视化效果很差。我问的原因是,我真的很难在我的会议中解释。是否有任何可能的方式来解释高维向量空间以及为什么这些数据点对商业人士来说很遥远。如果你用一些比喻和深入的方式解释我,那将是非常棒的。 非常感谢您的时间和解释,你迄今为止所做的。 –