R 中聚类的训练和测试评估

Posted

技术标签:

【中文标题】R 中聚类的训练和测试评估【英文标题】:Training and Test evaluation for Clustering in R 【发布时间】:2016-12-20 08:47:16 【问题描述】:

我正在尝试在 R 中实现类似于 @bens code here 的东西。我正在处理非结构化新闻文章,并希望在进行主题建模后对它们进行聚类我尝试执行 @ben 提供的代码并且它有效.我想知道如何在训练和测试中划分数据并预测测试数据的集群,然后评估测试数据的集群方式可能使用平均平均精度。

我知道这变成了半无监督而不是无监督,但我想试试看结果。

【问题讨论】:

最好在Cross Validated 上收到有关如何有条不紊地进行设置的建议。在这里,您需要提供一些您尝试过的代码(实现),并指出您在实现方法时遇到的问题(毕竟需要一个方法)。请以这样的方式扩展问题,使其符合任一站点的条件,并在必要时请求迁移(通过“标志”菜单)。 好的。。谢谢,我会在那里转发 我已发起迁移请求。这样,此问题将被移至 CV,而不会创建副本。 谢谢@AlexR 但是你能帮我解决这个问题吗? 我不确定这个问题是否会以当前形式存在于Cross Validated 上。它需要更清晰、独立,而不是代码审查或关于如何在软件中实现给定程序。如果唯一真正的问题是如何将数据划分为训练和测试,以及如何评估聚类的有效性,那将是一个很好的问题,但却是重复的。您应该搜索该站点并阅读现有信息。然后你可以发布一个特定于你仍然需要知道的问题。 【参考方案1】:

半监督意味着您将优化(!)聚类以在您有标签的数据集上产生“最佳”结果,并期望它也能很好地聚类未标记的数据。这很难开始工作,具体取决于您的数据。例如,使用 k-means,您可能会优化 k 以匹配 已知 簇的数量,但是未知的簇呢?

如果您只想查看您的聚类方法是否有效,则不需要进行训练测试拆分。这有助于在优化参数时避免过度拟合(并且在此范围内,对您的实际性能过于乐观)。当不使用方法中的标签(如在聚类中)并且也不使用参数化时,您可以简单地执行所谓的“外部评估”。您将标签重新添加到数据集中,并评估聚类与标签的一致性。

但请注意,即使集群与您的标签不一致,它们也可能很好。例如,您的标签可能是“olympics”,但聚类会为“游泳”生成一个聚类。这是一个很好的集群,即使它拆分了您提供的标签(有人甚至可能认为它很好 因为它这样做了,它改善了您的标签!)。

如果您的所有数据都已标记,请始终选择分类!不要试图优化聚类来模拟分类。

【讨论】:

以上是关于R 中聚类的训练和测试评估的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV中聚类方法的并行化

一致性聚类(用于确定聚类算法中聚类的数目)

在R中聚类非常大的数据集

WEKA 如何评估集群?

R中K-MeansClaraC-Means三种聚类的评估

请问spss中聚类分析的操作步骤