首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现MFCC特征的K-Means聚类算法?

如何实现MFCC特征的K-Means聚类算法?
EN

Stack Overflow用户
提问于 2011-05-29 06:30:18
回答 2查看 2.2K关注 0票数 3

利用MFCC算法得到了一些声音变量的特征。我想用K-Means对它们进行聚类。我有70帧,每帧都有9个倒谱系数用于一个语音样本。这意味着我有一个类似于70*9大小的矩阵。

让我们假设A,B和C是语音记录

一个是:

代码语言:javascript
复制
List<List<Double>> -> 70*9 array (I can use Vector instead of List)

B和C的长度也是一样的。

我不想聚类每一帧,我想聚类每一帧块(在我的例子中,一组有70帧)。

我如何在Java中用K-Means实现它?

EN

回答 2

Stack Overflow用户

发布于 2011-05-29 14:46:19

这就是你对问题领域的知识变得至关重要的地方。您可能只使用70*9矩阵之间的距离,但您可能会做得更好。我不知道你提到的特定特征,但一些通用的例子可能是每个特征70个值的平均标准差。您基本上是在寻求减少维度的数量,这既是为了提高速度,也是为了使度量针对sImple转换具有健壮性,比如将所有值偏移一步

票数 3
EN

Stack Overflow用户

发布于 2012-07-10 16:25:37

K-Means对你的数据有一些非常严格的假设。我不相信你的数据适合在上面运行k-means。

  1. K-means是为欧几里得距离而设计的,可能有一种更适合您的数据的距离度量。
  2. K- means需要能够计算合理的平均值,这可能不适合您的data
  3. 许多距离函数(和算法!)在70*9维度下不能很好地工作(“dimensionality")
  4. You的诅咒需要事先知道k。

附注:避免使用Java泛型作为基本类型,比如Double。它会扼杀性能。使用double[][]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6164734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档