1

我是机器学习的新手,想在 MATLAB 中实现依赖于距离的中餐厅流程,以对音轨进行聚类。

我希望在 26 个功能上使用 dd-CRP。我猜这个过程可能是这样的

  • 读入第一个特征向量并为其分配一个“表格”
  • 读入第二个特征向量并将其与第一个“表”进行比较,可能使用两个向量的余弦角(由于高维),如果它在某个定义的 theta 内一致,则加入该表,否则开始一个新表。
  • 读入下一个特征并对每个现有表的新特征向量重复步骤 2。
  • 在发生这种情况时,我将跟踪有多少表。

我将在例如 16 个音轨上运行算法。将音频输入算法的方式是第一个特征向量来自音轨 1 的第一帧,第二个特征向量来自音轨 2 中的第一帧等,因为我试图找出哪个音轨最喜欢聚集在一起,但我不想定义有多少个质心。显然,我必须跟踪哪个音轨在哪个“桌子”上。

这有意义吗?

4

2 回答 2

1

这不是中餐厅流程。这是一种启发式算法,与中餐厅流程有一些相似之处。在 CRP 中,所有内容都是根据将项目分配到集群(表格类比)的先验来表达的,并且这些都与每个集群的似然函数相结合(它形式化了您描述的相似性函数)。然后由 Gibbs Sampling 进行推理,这意味着在给定所有其他分配的情况下,对每个轨道依次分配到哪个集群进行非确定性采样。非参数的变分方法仍处于非常初级的状态。

为什么要使用 CRP?您认为您会从更传统的聚类方法之外获得一些东西吗?实现和正确理解非参数的门槛相当高,而且由于我提到的推理限制,它们目前通常没有什么实际用途。

于 2013-11-13T15:04:37.363 回答
0

您可以使用该X-means算法,该算法根据贝叶斯信息准则(或 BIC)自动确定最佳质心数(以及因此的聚类数)。简而言之,该算法寻找每个集群的密集程度,以及每个集群之间的距离。

于 2013-11-12T21:12:46.257 回答