我想用Java读取wav文件,我将用K-means对它们进行分类.
如何用Java读取wav文件并将它们分配到一个数组或类似的东西(你可以建议它的想法)来对它们进行分类?
编辑:我想使用API来读取wav文件和K-means.
我感觉就像一个简单的问题,但我似乎无法找到答案.我对Weka很陌生,但我觉得我已经对此做了一些研究(至少阅读了谷歌搜索结果的前几页)并且干了.
我正在使用Weka来使用Simple K-Means运行聚类.在结果列表中,我可以直观地看到我的输出("可视化集群分配"),从我对K-Means算法的理解和Weka的输出中可以清楚地看出,我的每个实例最终都是一个成员.不同的簇(以特定的质心为中心,如果你愿意的话).
我可以从文本输出中看到一些集群组合.但是,Weka没有为我提供从实例编号到集群编号的明确"映射".我想要像:
instance 1 --> cluster 0
instance 2 --> cluster 0
instance 3 --> cluster 2
instance 4 --> cluster 1
... etc.
Run Code Online (Sandbox Code Playgroud)
如何在不计算每个项目到每个质心的距离的情况下获得这些结果?
我正在学习K-medoids算法,所以如果我提出不恰当的问题,我很抱歉.据我所知,K-medoids算法实现了K-means聚类,但使用实际数据点作为质心而不是数学计算方法.
当我在网上搜索时,我发现了许多k-means工具,如GenePattern,geWengh等等,但不是k-medoids工具.一些好朋友告诉我,在Matlab,还有一个由一些用户编写.但是,我担心个人实现的工具可能仍然存在一些缺陷或限制.因此,我想知道是否有一些广泛使用的可靠的开源软件/工具使用实际数据点作为集群的质心.我需要找出有关实际质心的信息,因此只返回聚类结果是不够的.我更喜欢在线网站,但如果不是这样,我可以将它安装到我的本地机器上.非常感谢你,
我在R中使用kmeans()函数,我很好奇返回对象的totss和tot.withinss属性之间的区别是什么.从文档中他们似乎返回相同的东西,但在我的数据集上应用totss的值是66213.63,而tot.withinss的值是6893.50.如果您熟悉mroe细节,请告诉我.谢谢!
马吕斯.
我是R的新用户,试图摆脱SAS.我在这里问这个问题,因为我对R的所有软件包和源代码感到有点沮丧,我似乎无法让这个工作主要是由于数据大小.
我有以下内容:
在本地MySQL数据库中名为SOURCE的表,具有200个预测器功能和一个类变量.该表有300万条记录,大小为3GB.每个类的实例数不相等.
我想要:
stackoverflow中只有一个与此相关的问题,更多的是关于哪一个更好.我真的不明白其中的区别.我的意思是它们都使用矢量,这些矢量被随机分配到集群,它们都与不同集群的质心一起工作,以确定获胜的输出节点.我的意思是,差异究竟在哪里?
我一直在寻找scipy和sklearn来解决我遇到的特定问题的聚类算法.我需要某种方法将N个粒子的特征表征为k个组,其中k不一定是已知的,除此之外,没有先验的链接长度是已知的(类似于这个问题).
我已经尝试了kmeans,如果你知道你想要多少个簇,那么效果很好.我已经尝试过dbscan,除非你告诉它一个特征性的长度尺度来停止寻找(或开始寻找)群集,否则它会很糟糕.问题是,我可能有成千上万的这些粒子簇,我不能花时间告诉kmeans/dbscan算法他们应该做些什么.
以下是dbscan找到的示例:

你可以看到这里确实存在两个不同的种群,虽然调整了epsilon因子(相邻簇参数之间的最大距离),但我根本无法看到这两个粒子群.
有没有其他算法可以在这里工作?我预先寻找最少的信息 - 换句话说,我希望算法能够做出关于什么可能构成单独集群的"智能"决策.
我有一个N个顶点的图形,其中每个顶点代表一个地方.此外,我有一个向量,每个用户一个,N个系数中的每一个,其中系数的值是在相应位置花费的持续时间(秒),如果没有访问该位置,则为0.
例如图表:

向量:
v1 = {100, 50, 0 30, 0}
Run Code Online (Sandbox Code Playgroud)
意味着我们花了:
100secs at vertex 1
50secs at vertex 2 and
30secs at vertex 4
Run Code Online (Sandbox Code Playgroud)
(未访问的顶点3和5,因此为0).
我想运行k-means聚类,我选择cosine_distance = 1 - cosine_similarity了距离的度量,其公式为cosine_similarity:

作为描述在这里.
但我注意到以下情况.假设k=2其中一个向量是:
v1 = {90,0,0,0,0}
Run Code Online (Sandbox Code Playgroud)
在解决最小化候选质心总距离的优化问题的过程中,假设在某一点上,2个候选质心是:
c1 = {90,90,90,90,90}
c2 = {1000, 1000, 1000, 1000, 1000}
Run Code Online (Sandbox Code Playgroud)
运行cosine_distance(v1,c1)和(v1,c2)的公式,我们得到0.5527864045两者的距离完全相同.
我认为v1比c2更接近c1更接近(更接近).显然事实并非如此.
Q1.为什么这个假设错了?
Q2.在这种情况下,余弦距离是否是正确的距离函数?
Q3.考虑到问题的本质,什么会更好?
cluster-analysis distance data-mining k-means cosine-similarity
如果我们有一些数据点:
例如,我们使用 k-means 进行分割;所得到的线段是否不是每个点都最接近其各自簇的质心?如果是这样,当 Silhouette Score 比较 ai(到簇内点的平均距离)和 bi(到簇外点的平均距离)时,怎么会出现分数为负,或者 bi 小于 ai 的情况?
我可以看到,对于不同的分类算法,一些更复杂的算法可能会以不同的方式进行聚类,或者某些点分配不正确。但是 k 均值是如何发生这种情况的呢?
我正在阅读我可以从lucene索引创建mahout向量,该索引可用于应用mahout聚类算法. http://cwiki.apache.org/confluence/display/MAHOUT/Creating+Vectors+from+Text
我想在我的Lucene索引中的文档中应用K-means聚类算法,但是我不清楚如何应用这个算法(或层次聚类)来提取这些文档的有意义的聚类.
在这个页面中http://cwiki.apache.org/confluence/display/MAHOUT/k-Means 说该算法接受两个输入目录:一个用于数据点,一个用于初始簇.我的数据点是文件?我如何"声明"这些是我的文件(或它们的载体),只需要它们并进行聚类?
抱歉我的语法很差
谢谢
k-means ×10
data-mining ×2
r ×2
audio ×1
dbscan ×1
distance ×1
indexing ×1
java ×1
knn ×1
large-data ×1
lucene ×1
mahout ×1
open-source ×1
silhouette ×1
som ×1
wav ×1
weka ×1